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,695 @@
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
+
17
+ __all__ = ['PrivilegedAccessGroupAssignmentScheduleArgs', 'PrivilegedAccessGroupAssignmentSchedule']
18
+
19
+ @pulumi.input_type
20
+ class PrivilegedAccessGroupAssignmentScheduleArgs:
21
+ def __init__(__self__, *,
22
+ assignment_type: pulumi.Input[_builtins.str],
23
+ group_id: pulumi.Input[_builtins.str],
24
+ principal_id: pulumi.Input[_builtins.str],
25
+ duration: Optional[pulumi.Input[_builtins.str]] = None,
26
+ expiration_date: Optional[pulumi.Input[_builtins.str]] = None,
27
+ justification: Optional[pulumi.Input[_builtins.str]] = None,
28
+ permanent_assignment: Optional[pulumi.Input[_builtins.bool]] = None,
29
+ start_date: Optional[pulumi.Input[_builtins.str]] = None,
30
+ ticket_number: Optional[pulumi.Input[_builtins.str]] = None,
31
+ ticket_system: Optional[pulumi.Input[_builtins.str]] = None):
32
+ """
33
+ The set of arguments for constructing a PrivilegedAccessGroupAssignmentSchedule resource.
34
+ :param pulumi.Input[_builtins.str] assignment_type: The type of assignment to the group. Can be either `member` or `owner`.
35
+ :param pulumi.Input[_builtins.str] group_id: The Object ID of the Azure AD group to which the principal will be assigned.
36
+ :param pulumi.Input[_builtins.str] principal_id: The Object ID of the principal to be assigned to the above group. Can be either a user or a group.
37
+ :param pulumi.Input[_builtins.str] duration: The duration that this assignment is valid for, formatted as an ISO8601 duration (e.g. P30D for 30 days, PT3H for three hours).
38
+ :param pulumi.Input[_builtins.str] expiration_date: The date that this assignment expires, formatted as an RFC3339 date string (e.g. 2018-01-01T01:02:03Z).
39
+ :param pulumi.Input[_builtins.str] justification: The justification for this assignment. May be required by the role policy.
40
+ :param pulumi.Input[_builtins.bool] permanent_assignment: Is this assigment permanently valid.
41
+
42
+ At least one of `expiration_date`, `duration`, or `permanent_assignment` must be supplied. The role policy may limit the maximum duration which can be supplied.
43
+ :param pulumi.Input[_builtins.str] start_date: The date from which this assignment is valid, formatted as an RFC3339 date string (e.g. 2018-01-01T01:02:03Z). If not provided, the assignment is immediately valid.
44
+ :param pulumi.Input[_builtins.str] ticket_number: The ticket number in the ticket system approving this assignment. May be required by the role policy.
45
+ :param pulumi.Input[_builtins.str] ticket_system: The ticket system containing the ticket number approving this assignment. May be required by the role policy.
46
+ """
47
+ pulumi.set(__self__, "assignment_type", assignment_type)
48
+ pulumi.set(__self__, "group_id", group_id)
49
+ pulumi.set(__self__, "principal_id", principal_id)
50
+ if duration is not None:
51
+ pulumi.set(__self__, "duration", duration)
52
+ if expiration_date is not None:
53
+ pulumi.set(__self__, "expiration_date", expiration_date)
54
+ if justification is not None:
55
+ pulumi.set(__self__, "justification", justification)
56
+ if permanent_assignment is not None:
57
+ pulumi.set(__self__, "permanent_assignment", permanent_assignment)
58
+ if start_date is not None:
59
+ pulumi.set(__self__, "start_date", start_date)
60
+ if ticket_number is not None:
61
+ pulumi.set(__self__, "ticket_number", ticket_number)
62
+ if ticket_system is not None:
63
+ pulumi.set(__self__, "ticket_system", ticket_system)
64
+
65
+ @_builtins.property
66
+ @pulumi.getter(name="assignmentType")
67
+ def assignment_type(self) -> pulumi.Input[_builtins.str]:
68
+ """
69
+ The type of assignment to the group. Can be either `member` or `owner`.
70
+ """
71
+ return pulumi.get(self, "assignment_type")
72
+
73
+ @assignment_type.setter
74
+ def assignment_type(self, value: pulumi.Input[_builtins.str]):
75
+ pulumi.set(self, "assignment_type", value)
76
+
77
+ @_builtins.property
78
+ @pulumi.getter(name="groupId")
79
+ def group_id(self) -> pulumi.Input[_builtins.str]:
80
+ """
81
+ The Object ID of the Azure AD group to which the principal will be assigned.
82
+ """
83
+ return pulumi.get(self, "group_id")
84
+
85
+ @group_id.setter
86
+ def group_id(self, value: pulumi.Input[_builtins.str]):
87
+ pulumi.set(self, "group_id", value)
88
+
89
+ @_builtins.property
90
+ @pulumi.getter(name="principalId")
91
+ def principal_id(self) -> pulumi.Input[_builtins.str]:
92
+ """
93
+ The Object ID of the principal to be assigned to the above group. Can be either a user or a group.
94
+ """
95
+ return pulumi.get(self, "principal_id")
96
+
97
+ @principal_id.setter
98
+ def principal_id(self, value: pulumi.Input[_builtins.str]):
99
+ pulumi.set(self, "principal_id", value)
100
+
101
+ @_builtins.property
102
+ @pulumi.getter
103
+ def duration(self) -> Optional[pulumi.Input[_builtins.str]]:
104
+ """
105
+ The duration that this assignment is valid for, formatted as an ISO8601 duration (e.g. P30D for 30 days, PT3H for three hours).
106
+ """
107
+ return pulumi.get(self, "duration")
108
+
109
+ @duration.setter
110
+ def duration(self, value: Optional[pulumi.Input[_builtins.str]]):
111
+ pulumi.set(self, "duration", value)
112
+
113
+ @_builtins.property
114
+ @pulumi.getter(name="expirationDate")
115
+ def expiration_date(self) -> Optional[pulumi.Input[_builtins.str]]:
116
+ """
117
+ The date that this assignment expires, formatted as an RFC3339 date string (e.g. 2018-01-01T01:02:03Z).
118
+ """
119
+ return pulumi.get(self, "expiration_date")
120
+
121
+ @expiration_date.setter
122
+ def expiration_date(self, value: Optional[pulumi.Input[_builtins.str]]):
123
+ pulumi.set(self, "expiration_date", value)
124
+
125
+ @_builtins.property
126
+ @pulumi.getter
127
+ def justification(self) -> Optional[pulumi.Input[_builtins.str]]:
128
+ """
129
+ The justification for this assignment. May be required by the role policy.
130
+ """
131
+ return pulumi.get(self, "justification")
132
+
133
+ @justification.setter
134
+ def justification(self, value: Optional[pulumi.Input[_builtins.str]]):
135
+ pulumi.set(self, "justification", value)
136
+
137
+ @_builtins.property
138
+ @pulumi.getter(name="permanentAssignment")
139
+ def permanent_assignment(self) -> Optional[pulumi.Input[_builtins.bool]]:
140
+ """
141
+ Is this assigment permanently valid.
142
+
143
+ At least one of `expiration_date`, `duration`, or `permanent_assignment` must be supplied. The role policy may limit the maximum duration which can be supplied.
144
+ """
145
+ return pulumi.get(self, "permanent_assignment")
146
+
147
+ @permanent_assignment.setter
148
+ def permanent_assignment(self, value: Optional[pulumi.Input[_builtins.bool]]):
149
+ pulumi.set(self, "permanent_assignment", value)
150
+
151
+ @_builtins.property
152
+ @pulumi.getter(name="startDate")
153
+ def start_date(self) -> Optional[pulumi.Input[_builtins.str]]:
154
+ """
155
+ The date from which this assignment is valid, formatted as an RFC3339 date string (e.g. 2018-01-01T01:02:03Z). If not provided, the assignment is immediately valid.
156
+ """
157
+ return pulumi.get(self, "start_date")
158
+
159
+ @start_date.setter
160
+ def start_date(self, value: Optional[pulumi.Input[_builtins.str]]):
161
+ pulumi.set(self, "start_date", value)
162
+
163
+ @_builtins.property
164
+ @pulumi.getter(name="ticketNumber")
165
+ def ticket_number(self) -> Optional[pulumi.Input[_builtins.str]]:
166
+ """
167
+ The ticket number in the ticket system approving this assignment. May be required by the role policy.
168
+ """
169
+ return pulumi.get(self, "ticket_number")
170
+
171
+ @ticket_number.setter
172
+ def ticket_number(self, value: Optional[pulumi.Input[_builtins.str]]):
173
+ pulumi.set(self, "ticket_number", value)
174
+
175
+ @_builtins.property
176
+ @pulumi.getter(name="ticketSystem")
177
+ def ticket_system(self) -> Optional[pulumi.Input[_builtins.str]]:
178
+ """
179
+ The ticket system containing the ticket number approving this assignment. May be required by the role policy.
180
+ """
181
+ return pulumi.get(self, "ticket_system")
182
+
183
+ @ticket_system.setter
184
+ def ticket_system(self, value: Optional[pulumi.Input[_builtins.str]]):
185
+ pulumi.set(self, "ticket_system", value)
186
+
187
+
188
+ @pulumi.input_type
189
+ class _PrivilegedAccessGroupAssignmentScheduleState:
190
+ def __init__(__self__, *,
191
+ assignment_type: Optional[pulumi.Input[_builtins.str]] = None,
192
+ duration: Optional[pulumi.Input[_builtins.str]] = None,
193
+ expiration_date: Optional[pulumi.Input[_builtins.str]] = None,
194
+ group_id: Optional[pulumi.Input[_builtins.str]] = None,
195
+ justification: Optional[pulumi.Input[_builtins.str]] = None,
196
+ permanent_assignment: Optional[pulumi.Input[_builtins.bool]] = None,
197
+ principal_id: Optional[pulumi.Input[_builtins.str]] = None,
198
+ start_date: Optional[pulumi.Input[_builtins.str]] = None,
199
+ status: Optional[pulumi.Input[_builtins.str]] = None,
200
+ ticket_number: Optional[pulumi.Input[_builtins.str]] = None,
201
+ ticket_system: Optional[pulumi.Input[_builtins.str]] = None):
202
+ """
203
+ Input properties used for looking up and filtering PrivilegedAccessGroupAssignmentSchedule resources.
204
+ :param pulumi.Input[_builtins.str] assignment_type: The type of assignment to the group. Can be either `member` or `owner`.
205
+ :param pulumi.Input[_builtins.str] duration: The duration that this assignment is valid for, formatted as an ISO8601 duration (e.g. P30D for 30 days, PT3H for three hours).
206
+ :param pulumi.Input[_builtins.str] expiration_date: The date that this assignment expires, formatted as an RFC3339 date string (e.g. 2018-01-01T01:02:03Z).
207
+ :param pulumi.Input[_builtins.str] group_id: The Object ID of the Azure AD group to which the principal will be assigned.
208
+ :param pulumi.Input[_builtins.str] justification: The justification for this assignment. May be required by the role policy.
209
+ :param pulumi.Input[_builtins.bool] permanent_assignment: Is this assigment permanently valid.
210
+
211
+ At least one of `expiration_date`, `duration`, or `permanent_assignment` must be supplied. The role policy may limit the maximum duration which can be supplied.
212
+ :param pulumi.Input[_builtins.str] principal_id: The Object ID of the principal to be assigned to the above group. Can be either a user or a group.
213
+ :param pulumi.Input[_builtins.str] start_date: The date from which this assignment is valid, formatted as an RFC3339 date string (e.g. 2018-01-01T01:02:03Z). If not provided, the assignment is immediately valid.
214
+ :param pulumi.Input[_builtins.str] status: (String) The provisioning status of this request.
215
+ :param pulumi.Input[_builtins.str] ticket_number: The ticket number in the ticket system approving this assignment. May be required by the role policy.
216
+ :param pulumi.Input[_builtins.str] ticket_system: The ticket system containing the ticket number approving this assignment. May be required by the role policy.
217
+ """
218
+ if assignment_type is not None:
219
+ pulumi.set(__self__, "assignment_type", assignment_type)
220
+ if duration is not None:
221
+ pulumi.set(__self__, "duration", duration)
222
+ if expiration_date is not None:
223
+ pulumi.set(__self__, "expiration_date", expiration_date)
224
+ if group_id is not None:
225
+ pulumi.set(__self__, "group_id", group_id)
226
+ if justification is not None:
227
+ pulumi.set(__self__, "justification", justification)
228
+ if permanent_assignment is not None:
229
+ pulumi.set(__self__, "permanent_assignment", permanent_assignment)
230
+ if principal_id is not None:
231
+ pulumi.set(__self__, "principal_id", principal_id)
232
+ if start_date is not None:
233
+ pulumi.set(__self__, "start_date", start_date)
234
+ if status is not None:
235
+ pulumi.set(__self__, "status", status)
236
+ if ticket_number is not None:
237
+ pulumi.set(__self__, "ticket_number", ticket_number)
238
+ if ticket_system is not None:
239
+ pulumi.set(__self__, "ticket_system", ticket_system)
240
+
241
+ @_builtins.property
242
+ @pulumi.getter(name="assignmentType")
243
+ def assignment_type(self) -> Optional[pulumi.Input[_builtins.str]]:
244
+ """
245
+ The type of assignment to the group. Can be either `member` or `owner`.
246
+ """
247
+ return pulumi.get(self, "assignment_type")
248
+
249
+ @assignment_type.setter
250
+ def assignment_type(self, value: Optional[pulumi.Input[_builtins.str]]):
251
+ pulumi.set(self, "assignment_type", value)
252
+
253
+ @_builtins.property
254
+ @pulumi.getter
255
+ def duration(self) -> Optional[pulumi.Input[_builtins.str]]:
256
+ """
257
+ The duration that this assignment is valid for, formatted as an ISO8601 duration (e.g. P30D for 30 days, PT3H for three hours).
258
+ """
259
+ return pulumi.get(self, "duration")
260
+
261
+ @duration.setter
262
+ def duration(self, value: Optional[pulumi.Input[_builtins.str]]):
263
+ pulumi.set(self, "duration", value)
264
+
265
+ @_builtins.property
266
+ @pulumi.getter(name="expirationDate")
267
+ def expiration_date(self) -> Optional[pulumi.Input[_builtins.str]]:
268
+ """
269
+ The date that this assignment expires, formatted as an RFC3339 date string (e.g. 2018-01-01T01:02:03Z).
270
+ """
271
+ return pulumi.get(self, "expiration_date")
272
+
273
+ @expiration_date.setter
274
+ def expiration_date(self, value: Optional[pulumi.Input[_builtins.str]]):
275
+ pulumi.set(self, "expiration_date", value)
276
+
277
+ @_builtins.property
278
+ @pulumi.getter(name="groupId")
279
+ def group_id(self) -> Optional[pulumi.Input[_builtins.str]]:
280
+ """
281
+ The Object ID of the Azure AD group to which the principal will be assigned.
282
+ """
283
+ return pulumi.get(self, "group_id")
284
+
285
+ @group_id.setter
286
+ def group_id(self, value: Optional[pulumi.Input[_builtins.str]]):
287
+ pulumi.set(self, "group_id", value)
288
+
289
+ @_builtins.property
290
+ @pulumi.getter
291
+ def justification(self) -> Optional[pulumi.Input[_builtins.str]]:
292
+ """
293
+ The justification for this assignment. May be required by the role policy.
294
+ """
295
+ return pulumi.get(self, "justification")
296
+
297
+ @justification.setter
298
+ def justification(self, value: Optional[pulumi.Input[_builtins.str]]):
299
+ pulumi.set(self, "justification", value)
300
+
301
+ @_builtins.property
302
+ @pulumi.getter(name="permanentAssignment")
303
+ def permanent_assignment(self) -> Optional[pulumi.Input[_builtins.bool]]:
304
+ """
305
+ Is this assigment permanently valid.
306
+
307
+ At least one of `expiration_date`, `duration`, or `permanent_assignment` must be supplied. The role policy may limit the maximum duration which can be supplied.
308
+ """
309
+ return pulumi.get(self, "permanent_assignment")
310
+
311
+ @permanent_assignment.setter
312
+ def permanent_assignment(self, value: Optional[pulumi.Input[_builtins.bool]]):
313
+ pulumi.set(self, "permanent_assignment", value)
314
+
315
+ @_builtins.property
316
+ @pulumi.getter(name="principalId")
317
+ def principal_id(self) -> Optional[pulumi.Input[_builtins.str]]:
318
+ """
319
+ The Object ID of the principal to be assigned to the above group. Can be either a user or a group.
320
+ """
321
+ return pulumi.get(self, "principal_id")
322
+
323
+ @principal_id.setter
324
+ def principal_id(self, value: Optional[pulumi.Input[_builtins.str]]):
325
+ pulumi.set(self, "principal_id", value)
326
+
327
+ @_builtins.property
328
+ @pulumi.getter(name="startDate")
329
+ def start_date(self) -> Optional[pulumi.Input[_builtins.str]]:
330
+ """
331
+ The date from which this assignment is valid, formatted as an RFC3339 date string (e.g. 2018-01-01T01:02:03Z). If not provided, the assignment is immediately valid.
332
+ """
333
+ return pulumi.get(self, "start_date")
334
+
335
+ @start_date.setter
336
+ def start_date(self, value: Optional[pulumi.Input[_builtins.str]]):
337
+ pulumi.set(self, "start_date", value)
338
+
339
+ @_builtins.property
340
+ @pulumi.getter
341
+ def status(self) -> Optional[pulumi.Input[_builtins.str]]:
342
+ """
343
+ (String) The provisioning status of this request.
344
+ """
345
+ return pulumi.get(self, "status")
346
+
347
+ @status.setter
348
+ def status(self, value: Optional[pulumi.Input[_builtins.str]]):
349
+ pulumi.set(self, "status", value)
350
+
351
+ @_builtins.property
352
+ @pulumi.getter(name="ticketNumber")
353
+ def ticket_number(self) -> Optional[pulumi.Input[_builtins.str]]:
354
+ """
355
+ The ticket number in the ticket system approving this assignment. May be required by the role policy.
356
+ """
357
+ return pulumi.get(self, "ticket_number")
358
+
359
+ @ticket_number.setter
360
+ def ticket_number(self, value: Optional[pulumi.Input[_builtins.str]]):
361
+ pulumi.set(self, "ticket_number", value)
362
+
363
+ @_builtins.property
364
+ @pulumi.getter(name="ticketSystem")
365
+ def ticket_system(self) -> Optional[pulumi.Input[_builtins.str]]:
366
+ """
367
+ The ticket system containing the ticket number approving this assignment. May be required by the role policy.
368
+ """
369
+ return pulumi.get(self, "ticket_system")
370
+
371
+ @ticket_system.setter
372
+ def ticket_system(self, value: Optional[pulumi.Input[_builtins.str]]):
373
+ pulumi.set(self, "ticket_system", value)
374
+
375
+
376
+ @pulumi.type_token("azuread:index/privilegedAccessGroupAssignmentSchedule:PrivilegedAccessGroupAssignmentSchedule")
377
+ class PrivilegedAccessGroupAssignmentSchedule(pulumi.CustomResource):
378
+ @overload
379
+ def __init__(__self__,
380
+ resource_name: str,
381
+ opts: Optional[pulumi.ResourceOptions] = None,
382
+ assignment_type: Optional[pulumi.Input[_builtins.str]] = None,
383
+ duration: Optional[pulumi.Input[_builtins.str]] = None,
384
+ expiration_date: Optional[pulumi.Input[_builtins.str]] = None,
385
+ group_id: Optional[pulumi.Input[_builtins.str]] = None,
386
+ justification: Optional[pulumi.Input[_builtins.str]] = None,
387
+ permanent_assignment: Optional[pulumi.Input[_builtins.bool]] = None,
388
+ principal_id: Optional[pulumi.Input[_builtins.str]] = None,
389
+ start_date: Optional[pulumi.Input[_builtins.str]] = None,
390
+ ticket_number: Optional[pulumi.Input[_builtins.str]] = None,
391
+ ticket_system: Optional[pulumi.Input[_builtins.str]] = None,
392
+ __props__=None):
393
+ """
394
+ Manages an active assignment to a privileged access group.
395
+
396
+ ## API Permissions
397
+
398
+ The following API permissions are required in order to use this resource.
399
+
400
+ When authenticated with a service principal, this resource requires the `PrivilegedAssignmentSchedule.ReadWrite.AzureADGroup` Microsoft Graph API permissions.
401
+
402
+ When authenticated with a user principal, this resource requires `Global Administrator` directory role, or the `Privileged Role Administrator` role in Identity Governance.
403
+
404
+ ## Example Usage
405
+
406
+ ```python
407
+ import pulumi
408
+ import pulumi_azuread as azuread
409
+
410
+ example = azuread.Group("example",
411
+ display_name="group-name",
412
+ security_enabled=True)
413
+ member = azuread.User("member",
414
+ user_principal_name="jdoe@example.com",
415
+ display_name="J. Doe",
416
+ mail_nickname="jdoe",
417
+ password="SecretP@sswd99!")
418
+ example_privileged_access_group_assignment_schedule = azuread.PrivilegedAccessGroupAssignmentSchedule("example",
419
+ group_id=pim["id"],
420
+ principal_id=member.id,
421
+ assignment_type="member",
422
+ duration="P30D",
423
+ justification="as requested")
424
+ ```
425
+
426
+ ## Import
427
+
428
+ An assignment schedule can be imported using the schedule ID, e.g.
429
+
430
+ ```sh
431
+ $ pulumi import azuread:index/privilegedAccessGroupAssignmentSchedule:PrivilegedAccessGroupAssignmentSchedule example 00000000-0000-0000-0000-000000000000_member_00000000-0000-0000-0000-000000000000
432
+ ```
433
+
434
+ :param str resource_name: The name of the resource.
435
+ :param pulumi.ResourceOptions opts: Options for the resource.
436
+ :param pulumi.Input[_builtins.str] assignment_type: The type of assignment to the group. Can be either `member` or `owner`.
437
+ :param pulumi.Input[_builtins.str] duration: The duration that this assignment is valid for, formatted as an ISO8601 duration (e.g. P30D for 30 days, PT3H for three hours).
438
+ :param pulumi.Input[_builtins.str] expiration_date: The date that this assignment expires, formatted as an RFC3339 date string (e.g. 2018-01-01T01:02:03Z).
439
+ :param pulumi.Input[_builtins.str] group_id: The Object ID of the Azure AD group to which the principal will be assigned.
440
+ :param pulumi.Input[_builtins.str] justification: The justification for this assignment. May be required by the role policy.
441
+ :param pulumi.Input[_builtins.bool] permanent_assignment: Is this assigment permanently valid.
442
+
443
+ At least one of `expiration_date`, `duration`, or `permanent_assignment` must be supplied. The role policy may limit the maximum duration which can be supplied.
444
+ :param pulumi.Input[_builtins.str] principal_id: The Object ID of the principal to be assigned to the above group. Can be either a user or a group.
445
+ :param pulumi.Input[_builtins.str] start_date: The date from which this assignment is valid, formatted as an RFC3339 date string (e.g. 2018-01-01T01:02:03Z). If not provided, the assignment is immediately valid.
446
+ :param pulumi.Input[_builtins.str] ticket_number: The ticket number in the ticket system approving this assignment. May be required by the role policy.
447
+ :param pulumi.Input[_builtins.str] ticket_system: The ticket system containing the ticket number approving this assignment. May be required by the role policy.
448
+ """
449
+ ...
450
+ @overload
451
+ def __init__(__self__,
452
+ resource_name: str,
453
+ args: PrivilegedAccessGroupAssignmentScheduleArgs,
454
+ opts: Optional[pulumi.ResourceOptions] = None):
455
+ """
456
+ Manages an active assignment to a privileged access group.
457
+
458
+ ## API Permissions
459
+
460
+ The following API permissions are required in order to use this resource.
461
+
462
+ When authenticated with a service principal, this resource requires the `PrivilegedAssignmentSchedule.ReadWrite.AzureADGroup` Microsoft Graph API permissions.
463
+
464
+ When authenticated with a user principal, this resource requires `Global Administrator` directory role, or the `Privileged Role Administrator` role in Identity Governance.
465
+
466
+ ## Example Usage
467
+
468
+ ```python
469
+ import pulumi
470
+ import pulumi_azuread as azuread
471
+
472
+ example = azuread.Group("example",
473
+ display_name="group-name",
474
+ security_enabled=True)
475
+ member = azuread.User("member",
476
+ user_principal_name="jdoe@example.com",
477
+ display_name="J. Doe",
478
+ mail_nickname="jdoe",
479
+ password="SecretP@sswd99!")
480
+ example_privileged_access_group_assignment_schedule = azuread.PrivilegedAccessGroupAssignmentSchedule("example",
481
+ group_id=pim["id"],
482
+ principal_id=member.id,
483
+ assignment_type="member",
484
+ duration="P30D",
485
+ justification="as requested")
486
+ ```
487
+
488
+ ## Import
489
+
490
+ An assignment schedule can be imported using the schedule ID, e.g.
491
+
492
+ ```sh
493
+ $ pulumi import azuread:index/privilegedAccessGroupAssignmentSchedule:PrivilegedAccessGroupAssignmentSchedule example 00000000-0000-0000-0000-000000000000_member_00000000-0000-0000-0000-000000000000
494
+ ```
495
+
496
+ :param str resource_name: The name of the resource.
497
+ :param PrivilegedAccessGroupAssignmentScheduleArgs args: The arguments to use to populate this resource's properties.
498
+ :param pulumi.ResourceOptions opts: Options for the resource.
499
+ """
500
+ ...
501
+ def __init__(__self__, resource_name: str, *args, **kwargs):
502
+ resource_args, opts = _utilities.get_resource_args_opts(PrivilegedAccessGroupAssignmentScheduleArgs, pulumi.ResourceOptions, *args, **kwargs)
503
+ if resource_args is not None:
504
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
505
+ else:
506
+ __self__._internal_init(resource_name, *args, **kwargs)
507
+
508
+ def _internal_init(__self__,
509
+ resource_name: str,
510
+ opts: Optional[pulumi.ResourceOptions] = None,
511
+ assignment_type: Optional[pulumi.Input[_builtins.str]] = None,
512
+ duration: Optional[pulumi.Input[_builtins.str]] = None,
513
+ expiration_date: Optional[pulumi.Input[_builtins.str]] = None,
514
+ group_id: Optional[pulumi.Input[_builtins.str]] = None,
515
+ justification: Optional[pulumi.Input[_builtins.str]] = None,
516
+ permanent_assignment: Optional[pulumi.Input[_builtins.bool]] = None,
517
+ principal_id: Optional[pulumi.Input[_builtins.str]] = None,
518
+ start_date: Optional[pulumi.Input[_builtins.str]] = None,
519
+ ticket_number: Optional[pulumi.Input[_builtins.str]] = None,
520
+ ticket_system: Optional[pulumi.Input[_builtins.str]] = None,
521
+ __props__=None):
522
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
523
+ if not isinstance(opts, pulumi.ResourceOptions):
524
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
525
+ if opts.id is None:
526
+ if __props__ is not None:
527
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
528
+ __props__ = PrivilegedAccessGroupAssignmentScheduleArgs.__new__(PrivilegedAccessGroupAssignmentScheduleArgs)
529
+
530
+ if assignment_type is None and not opts.urn:
531
+ raise TypeError("Missing required property 'assignment_type'")
532
+ __props__.__dict__["assignment_type"] = assignment_type
533
+ __props__.__dict__["duration"] = duration
534
+ __props__.__dict__["expiration_date"] = expiration_date
535
+ if group_id is None and not opts.urn:
536
+ raise TypeError("Missing required property 'group_id'")
537
+ __props__.__dict__["group_id"] = group_id
538
+ __props__.__dict__["justification"] = justification
539
+ __props__.__dict__["permanent_assignment"] = permanent_assignment
540
+ if principal_id is None and not opts.urn:
541
+ raise TypeError("Missing required property 'principal_id'")
542
+ __props__.__dict__["principal_id"] = principal_id
543
+ __props__.__dict__["start_date"] = start_date
544
+ __props__.__dict__["ticket_number"] = ticket_number
545
+ __props__.__dict__["ticket_system"] = ticket_system
546
+ __props__.__dict__["status"] = None
547
+ super(PrivilegedAccessGroupAssignmentSchedule, __self__).__init__(
548
+ 'azuread:index/privilegedAccessGroupAssignmentSchedule:PrivilegedAccessGroupAssignmentSchedule',
549
+ resource_name,
550
+ __props__,
551
+ opts)
552
+
553
+ @staticmethod
554
+ def get(resource_name: str,
555
+ id: pulumi.Input[str],
556
+ opts: Optional[pulumi.ResourceOptions] = None,
557
+ assignment_type: Optional[pulumi.Input[_builtins.str]] = None,
558
+ duration: Optional[pulumi.Input[_builtins.str]] = None,
559
+ expiration_date: Optional[pulumi.Input[_builtins.str]] = None,
560
+ group_id: Optional[pulumi.Input[_builtins.str]] = None,
561
+ justification: Optional[pulumi.Input[_builtins.str]] = None,
562
+ permanent_assignment: Optional[pulumi.Input[_builtins.bool]] = None,
563
+ principal_id: Optional[pulumi.Input[_builtins.str]] = None,
564
+ start_date: Optional[pulumi.Input[_builtins.str]] = None,
565
+ status: Optional[pulumi.Input[_builtins.str]] = None,
566
+ ticket_number: Optional[pulumi.Input[_builtins.str]] = None,
567
+ ticket_system: Optional[pulumi.Input[_builtins.str]] = None) -> 'PrivilegedAccessGroupAssignmentSchedule':
568
+ """
569
+ Get an existing PrivilegedAccessGroupAssignmentSchedule resource's state with the given name, id, and optional extra
570
+ properties used to qualify the lookup.
571
+
572
+ :param str resource_name: The unique name of the resulting resource.
573
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
574
+ :param pulumi.ResourceOptions opts: Options for the resource.
575
+ :param pulumi.Input[_builtins.str] assignment_type: The type of assignment to the group. Can be either `member` or `owner`.
576
+ :param pulumi.Input[_builtins.str] duration: The duration that this assignment is valid for, formatted as an ISO8601 duration (e.g. P30D for 30 days, PT3H for three hours).
577
+ :param pulumi.Input[_builtins.str] expiration_date: The date that this assignment expires, formatted as an RFC3339 date string (e.g. 2018-01-01T01:02:03Z).
578
+ :param pulumi.Input[_builtins.str] group_id: The Object ID of the Azure AD group to which the principal will be assigned.
579
+ :param pulumi.Input[_builtins.str] justification: The justification for this assignment. May be required by the role policy.
580
+ :param pulumi.Input[_builtins.bool] permanent_assignment: Is this assigment permanently valid.
581
+
582
+ At least one of `expiration_date`, `duration`, or `permanent_assignment` must be supplied. The role policy may limit the maximum duration which can be supplied.
583
+ :param pulumi.Input[_builtins.str] principal_id: The Object ID of the principal to be assigned to the above group. Can be either a user or a group.
584
+ :param pulumi.Input[_builtins.str] start_date: The date from which this assignment is valid, formatted as an RFC3339 date string (e.g. 2018-01-01T01:02:03Z). If not provided, the assignment is immediately valid.
585
+ :param pulumi.Input[_builtins.str] status: (String) The provisioning status of this request.
586
+ :param pulumi.Input[_builtins.str] ticket_number: The ticket number in the ticket system approving this assignment. May be required by the role policy.
587
+ :param pulumi.Input[_builtins.str] ticket_system: The ticket system containing the ticket number approving this assignment. May be required by the role policy.
588
+ """
589
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
590
+
591
+ __props__ = _PrivilegedAccessGroupAssignmentScheduleState.__new__(_PrivilegedAccessGroupAssignmentScheduleState)
592
+
593
+ __props__.__dict__["assignment_type"] = assignment_type
594
+ __props__.__dict__["duration"] = duration
595
+ __props__.__dict__["expiration_date"] = expiration_date
596
+ __props__.__dict__["group_id"] = group_id
597
+ __props__.__dict__["justification"] = justification
598
+ __props__.__dict__["permanent_assignment"] = permanent_assignment
599
+ __props__.__dict__["principal_id"] = principal_id
600
+ __props__.__dict__["start_date"] = start_date
601
+ __props__.__dict__["status"] = status
602
+ __props__.__dict__["ticket_number"] = ticket_number
603
+ __props__.__dict__["ticket_system"] = ticket_system
604
+ return PrivilegedAccessGroupAssignmentSchedule(resource_name, opts=opts, __props__=__props__)
605
+
606
+ @_builtins.property
607
+ @pulumi.getter(name="assignmentType")
608
+ def assignment_type(self) -> pulumi.Output[_builtins.str]:
609
+ """
610
+ The type of assignment to the group. Can be either `member` or `owner`.
611
+ """
612
+ return pulumi.get(self, "assignment_type")
613
+
614
+ @_builtins.property
615
+ @pulumi.getter
616
+ def duration(self) -> pulumi.Output[Optional[_builtins.str]]:
617
+ """
618
+ The duration that this assignment is valid for, formatted as an ISO8601 duration (e.g. P30D for 30 days, PT3H for three hours).
619
+ """
620
+ return pulumi.get(self, "duration")
621
+
622
+ @_builtins.property
623
+ @pulumi.getter(name="expirationDate")
624
+ def expiration_date(self) -> pulumi.Output[_builtins.str]:
625
+ """
626
+ The date that this assignment expires, formatted as an RFC3339 date string (e.g. 2018-01-01T01:02:03Z).
627
+ """
628
+ return pulumi.get(self, "expiration_date")
629
+
630
+ @_builtins.property
631
+ @pulumi.getter(name="groupId")
632
+ def group_id(self) -> pulumi.Output[_builtins.str]:
633
+ """
634
+ The Object ID of the Azure AD group to which the principal will be assigned.
635
+ """
636
+ return pulumi.get(self, "group_id")
637
+
638
+ @_builtins.property
639
+ @pulumi.getter
640
+ def justification(self) -> pulumi.Output[Optional[_builtins.str]]:
641
+ """
642
+ The justification for this assignment. May be required by the role policy.
643
+ """
644
+ return pulumi.get(self, "justification")
645
+
646
+ @_builtins.property
647
+ @pulumi.getter(name="permanentAssignment")
648
+ def permanent_assignment(self) -> pulumi.Output[_builtins.bool]:
649
+ """
650
+ Is this assigment permanently valid.
651
+
652
+ At least one of `expiration_date`, `duration`, or `permanent_assignment` must be supplied. The role policy may limit the maximum duration which can be supplied.
653
+ """
654
+ return pulumi.get(self, "permanent_assignment")
655
+
656
+ @_builtins.property
657
+ @pulumi.getter(name="principalId")
658
+ def principal_id(self) -> pulumi.Output[_builtins.str]:
659
+ """
660
+ The Object ID of the principal to be assigned to the above group. Can be either a user or a group.
661
+ """
662
+ return pulumi.get(self, "principal_id")
663
+
664
+ @_builtins.property
665
+ @pulumi.getter(name="startDate")
666
+ def start_date(self) -> pulumi.Output[_builtins.str]:
667
+ """
668
+ The date from which this assignment is valid, formatted as an RFC3339 date string (e.g. 2018-01-01T01:02:03Z). If not provided, the assignment is immediately valid.
669
+ """
670
+ return pulumi.get(self, "start_date")
671
+
672
+ @_builtins.property
673
+ @pulumi.getter
674
+ def status(self) -> pulumi.Output[_builtins.str]:
675
+ """
676
+ (String) The provisioning status of this request.
677
+ """
678
+ return pulumi.get(self, "status")
679
+
680
+ @_builtins.property
681
+ @pulumi.getter(name="ticketNumber")
682
+ def ticket_number(self) -> pulumi.Output[Optional[_builtins.str]]:
683
+ """
684
+ The ticket number in the ticket system approving this assignment. May be required by the role policy.
685
+ """
686
+ return pulumi.get(self, "ticket_number")
687
+
688
+ @_builtins.property
689
+ @pulumi.getter(name="ticketSystem")
690
+ def ticket_system(self) -> pulumi.Output[Optional[_builtins.str]]:
691
+ """
692
+ The ticket system containing the ticket number approving this assignment. May be required by the role policy.
693
+ """
694
+ return pulumi.get(self, "ticket_system")
695
+