pulumi-alicloud 3.86.0a1757720227__py3-none-any.whl → 3.86.0a1758340042__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.
Files changed (40) hide show
  1. pulumi_alicloud/__init__.py +56 -0
  2. pulumi_alicloud/actiontrail/get_sasl_users.py +106 -21
  3. pulumi_alicloud/actiontrail/outputs.py +18 -0
  4. pulumi_alicloud/alikafka/instance.py +28 -28
  5. pulumi_alicloud/cen/transit_router_vpc_attachment.py +61 -29
  6. pulumi_alicloud/cloudfirewall/__init__.py +1 -0
  7. pulumi_alicloud/cloudfirewall/threat_intelligence_switch.py +257 -0
  8. pulumi_alicloud/cloudsso/__init__.py +1 -0
  9. pulumi_alicloud/cloudsso/_inputs.py +54 -0
  10. pulumi_alicloud/cloudsso/outputs.py +51 -0
  11. pulumi_alicloud/cloudsso/user_provisioning.py +723 -0
  12. pulumi_alicloud/dms/__init__.py +1 -0
  13. pulumi_alicloud/dms/airflow.py +990 -0
  14. pulumi_alicloud/ecs/ecs_launch_template.py +21 -7
  15. pulumi_alicloud/esa/__init__.py +2 -0
  16. pulumi_alicloud/esa/_inputs.py +189 -0
  17. pulumi_alicloud/esa/outputs.py +137 -0
  18. pulumi_alicloud/esa/transport_layer_application.py +459 -0
  19. pulumi_alicloud/esa/waf_ruleset.py +437 -0
  20. pulumi_alicloud/fc/_inputs.py +13 -0
  21. pulumi_alicloud/fc/function.py +0 -156
  22. pulumi_alicloud/fc/outputs.py +8 -0
  23. pulumi_alicloud/fc/v3_function.py +54 -7
  24. pulumi_alicloud/lindorm/__init__.py +2 -0
  25. pulumi_alicloud/lindorm/_inputs.py +459 -0
  26. pulumi_alicloud/lindorm/instance_v2.py +1119 -0
  27. pulumi_alicloud/lindorm/outputs.py +319 -0
  28. pulumi_alicloud/log/etl.py +6 -0
  29. pulumi_alicloud/mongodb/sharding_instance.py +235 -0
  30. pulumi_alicloud/pulumi-plugin.json +1 -1
  31. pulumi_alicloud/resourcemanager/control_policy_attachment.py +39 -7
  32. pulumi_alicloud/resourcemanager/handshake.py +118 -56
  33. pulumi_alicloud/sls/__init__.py +1 -0
  34. pulumi_alicloud/sls/_inputs.py +111 -0
  35. pulumi_alicloud/sls/index.py +646 -0
  36. pulumi_alicloud/sls/outputs.py +86 -0
  37. {pulumi_alicloud-3.86.0a1757720227.dist-info → pulumi_alicloud-3.86.0a1758340042.dist-info}/METADATA +1 -1
  38. {pulumi_alicloud-3.86.0a1757720227.dist-info → pulumi_alicloud-3.86.0a1758340042.dist-info}/RECORD +40 -32
  39. {pulumi_alicloud-3.86.0a1757720227.dist-info → pulumi_alicloud-3.86.0a1758340042.dist-info}/WHEEL +0 -0
  40. {pulumi_alicloud-3.86.0a1757720227.dist-info → pulumi_alicloud-3.86.0a1758340042.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,723 @@
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__ = ['UserProvisioningArgs', 'UserProvisioning']
20
+
21
+ @pulumi.input_type
22
+ class UserProvisioningArgs:
23
+ def __init__(__self__, *,
24
+ deletion_strategy: pulumi.Input[_builtins.str],
25
+ directory_id: pulumi.Input[_builtins.str],
26
+ duplication_strategy: pulumi.Input[_builtins.str],
27
+ principal_id: pulumi.Input[_builtins.str],
28
+ principal_type: pulumi.Input[_builtins.str],
29
+ target_id: pulumi.Input[_builtins.str],
30
+ target_type: pulumi.Input[_builtins.str],
31
+ description: Optional[pulumi.Input[_builtins.str]] = None):
32
+ """
33
+ The set of arguments for constructing a UserProvisioning resource.
34
+ :param pulumi.Input[_builtins.str] deletion_strategy: The processing policy for users who have been synchronized when deleting synchronization
35
+ :param pulumi.Input[_builtins.str] directory_id: The ID of the directory to which the synchronization belongs
36
+ :param pulumi.Input[_builtins.str] duplication_strategy: Processing Policy for Synchronization Conflicts
37
+ :param pulumi.Input[_builtins.str] principal_id: The ID of the CloudSSO user/group associated with the synchronization.
38
+ :param pulumi.Input[_builtins.str] principal_type: The ID of the CloudSSO user/group associated with the synchronization.
39
+ :param pulumi.Input[_builtins.str] target_id: The ID of the destination associated with the synchronization.
40
+ :param pulumi.Input[_builtins.str] target_type: The target type associated with the synchronization
41
+ :param pulumi.Input[_builtins.str] description: Description of User Synchronization
42
+ """
43
+ pulumi.set(__self__, "deletion_strategy", deletion_strategy)
44
+ pulumi.set(__self__, "directory_id", directory_id)
45
+ pulumi.set(__self__, "duplication_strategy", duplication_strategy)
46
+ pulumi.set(__self__, "principal_id", principal_id)
47
+ pulumi.set(__self__, "principal_type", principal_type)
48
+ pulumi.set(__self__, "target_id", target_id)
49
+ pulumi.set(__self__, "target_type", target_type)
50
+ if description is not None:
51
+ pulumi.set(__self__, "description", description)
52
+
53
+ @_builtins.property
54
+ @pulumi.getter(name="deletionStrategy")
55
+ def deletion_strategy(self) -> pulumi.Input[_builtins.str]:
56
+ """
57
+ The processing policy for users who have been synchronized when deleting synchronization
58
+ """
59
+ return pulumi.get(self, "deletion_strategy")
60
+
61
+ @deletion_strategy.setter
62
+ def deletion_strategy(self, value: pulumi.Input[_builtins.str]):
63
+ pulumi.set(self, "deletion_strategy", value)
64
+
65
+ @_builtins.property
66
+ @pulumi.getter(name="directoryId")
67
+ def directory_id(self) -> pulumi.Input[_builtins.str]:
68
+ """
69
+ The ID of the directory to which the synchronization belongs
70
+ """
71
+ return pulumi.get(self, "directory_id")
72
+
73
+ @directory_id.setter
74
+ def directory_id(self, value: pulumi.Input[_builtins.str]):
75
+ pulumi.set(self, "directory_id", value)
76
+
77
+ @_builtins.property
78
+ @pulumi.getter(name="duplicationStrategy")
79
+ def duplication_strategy(self) -> pulumi.Input[_builtins.str]:
80
+ """
81
+ Processing Policy for Synchronization Conflicts
82
+ """
83
+ return pulumi.get(self, "duplication_strategy")
84
+
85
+ @duplication_strategy.setter
86
+ def duplication_strategy(self, value: pulumi.Input[_builtins.str]):
87
+ pulumi.set(self, "duplication_strategy", value)
88
+
89
+ @_builtins.property
90
+ @pulumi.getter(name="principalId")
91
+ def principal_id(self) -> pulumi.Input[_builtins.str]:
92
+ """
93
+ The ID of the CloudSSO user/group associated with the synchronization.
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(name="principalType")
103
+ def principal_type(self) -> pulumi.Input[_builtins.str]:
104
+ """
105
+ The ID of the CloudSSO user/group associated with the synchronization.
106
+ """
107
+ return pulumi.get(self, "principal_type")
108
+
109
+ @principal_type.setter
110
+ def principal_type(self, value: pulumi.Input[_builtins.str]):
111
+ pulumi.set(self, "principal_type", value)
112
+
113
+ @_builtins.property
114
+ @pulumi.getter(name="targetId")
115
+ def target_id(self) -> pulumi.Input[_builtins.str]:
116
+ """
117
+ The ID of the destination associated with the synchronization.
118
+ """
119
+ return pulumi.get(self, "target_id")
120
+
121
+ @target_id.setter
122
+ def target_id(self, value: pulumi.Input[_builtins.str]):
123
+ pulumi.set(self, "target_id", value)
124
+
125
+ @_builtins.property
126
+ @pulumi.getter(name="targetType")
127
+ def target_type(self) -> pulumi.Input[_builtins.str]:
128
+ """
129
+ The target type associated with the synchronization
130
+ """
131
+ return pulumi.get(self, "target_type")
132
+
133
+ @target_type.setter
134
+ def target_type(self, value: pulumi.Input[_builtins.str]):
135
+ pulumi.set(self, "target_type", value)
136
+
137
+ @_builtins.property
138
+ @pulumi.getter
139
+ def description(self) -> Optional[pulumi.Input[_builtins.str]]:
140
+ """
141
+ Description of User Synchronization
142
+ """
143
+ return pulumi.get(self, "description")
144
+
145
+ @description.setter
146
+ def description(self, value: Optional[pulumi.Input[_builtins.str]]):
147
+ pulumi.set(self, "description", value)
148
+
149
+
150
+ @pulumi.input_type
151
+ class _UserProvisioningState:
152
+ def __init__(__self__, *,
153
+ create_time: Optional[pulumi.Input[_builtins.str]] = None,
154
+ deletion_strategy: Optional[pulumi.Input[_builtins.str]] = None,
155
+ description: Optional[pulumi.Input[_builtins.str]] = None,
156
+ directory_id: Optional[pulumi.Input[_builtins.str]] = None,
157
+ duplication_strategy: Optional[pulumi.Input[_builtins.str]] = None,
158
+ principal_id: Optional[pulumi.Input[_builtins.str]] = None,
159
+ principal_type: Optional[pulumi.Input[_builtins.str]] = None,
160
+ status: Optional[pulumi.Input[_builtins.str]] = None,
161
+ target_id: Optional[pulumi.Input[_builtins.str]] = None,
162
+ target_type: Optional[pulumi.Input[_builtins.str]] = None,
163
+ user_provisioning_id: Optional[pulumi.Input[_builtins.str]] = None,
164
+ user_provisioning_statistics: Optional[pulumi.Input[Sequence[pulumi.Input['UserProvisioningUserProvisioningStatisticArgs']]]] = None):
165
+ """
166
+ Input properties used for looking up and filtering UserProvisioning resources.
167
+ :param pulumi.Input[_builtins.str] create_time: The creation time of the synchronization
168
+ :param pulumi.Input[_builtins.str] deletion_strategy: The processing policy for users who have been synchronized when deleting synchronization
169
+ :param pulumi.Input[_builtins.str] description: Description of User Synchronization
170
+ :param pulumi.Input[_builtins.str] directory_id: The ID of the directory to which the synchronization belongs
171
+ :param pulumi.Input[_builtins.str] duplication_strategy: Processing Policy for Synchronization Conflicts
172
+ :param pulumi.Input[_builtins.str] principal_id: The ID of the CloudSSO user/group associated with the synchronization.
173
+ :param pulumi.Input[_builtins.str] principal_type: The ID of the CloudSSO user/group associated with the synchronization.
174
+ :param pulumi.Input[_builtins.str] status: The status of the resource
175
+ :param pulumi.Input[_builtins.str] target_id: The ID of the destination associated with the synchronization.
176
+ :param pulumi.Input[_builtins.str] target_type: The target type associated with the synchronization
177
+ :param pulumi.Input[_builtins.str] user_provisioning_id: The first ID of the resource
178
+ :param pulumi.Input[Sequence[pulumi.Input['UserProvisioningUserProvisioningStatisticArgs']]] user_provisioning_statistics: User Provisioning statistics
179
+ """
180
+ if create_time is not None:
181
+ pulumi.set(__self__, "create_time", create_time)
182
+ if deletion_strategy is not None:
183
+ pulumi.set(__self__, "deletion_strategy", deletion_strategy)
184
+ if description is not None:
185
+ pulumi.set(__self__, "description", description)
186
+ if directory_id is not None:
187
+ pulumi.set(__self__, "directory_id", directory_id)
188
+ if duplication_strategy is not None:
189
+ pulumi.set(__self__, "duplication_strategy", duplication_strategy)
190
+ if principal_id is not None:
191
+ pulumi.set(__self__, "principal_id", principal_id)
192
+ if principal_type is not None:
193
+ pulumi.set(__self__, "principal_type", principal_type)
194
+ if status is not None:
195
+ pulumi.set(__self__, "status", status)
196
+ if target_id is not None:
197
+ pulumi.set(__self__, "target_id", target_id)
198
+ if target_type is not None:
199
+ pulumi.set(__self__, "target_type", target_type)
200
+ if user_provisioning_id is not None:
201
+ pulumi.set(__self__, "user_provisioning_id", user_provisioning_id)
202
+ if user_provisioning_statistics is not None:
203
+ pulumi.set(__self__, "user_provisioning_statistics", user_provisioning_statistics)
204
+
205
+ @_builtins.property
206
+ @pulumi.getter(name="createTime")
207
+ def create_time(self) -> Optional[pulumi.Input[_builtins.str]]:
208
+ """
209
+ The creation time of the synchronization
210
+ """
211
+ return pulumi.get(self, "create_time")
212
+
213
+ @create_time.setter
214
+ def create_time(self, value: Optional[pulumi.Input[_builtins.str]]):
215
+ pulumi.set(self, "create_time", value)
216
+
217
+ @_builtins.property
218
+ @pulumi.getter(name="deletionStrategy")
219
+ def deletion_strategy(self) -> Optional[pulumi.Input[_builtins.str]]:
220
+ """
221
+ The processing policy for users who have been synchronized when deleting synchronization
222
+ """
223
+ return pulumi.get(self, "deletion_strategy")
224
+
225
+ @deletion_strategy.setter
226
+ def deletion_strategy(self, value: Optional[pulumi.Input[_builtins.str]]):
227
+ pulumi.set(self, "deletion_strategy", value)
228
+
229
+ @_builtins.property
230
+ @pulumi.getter
231
+ def description(self) -> Optional[pulumi.Input[_builtins.str]]:
232
+ """
233
+ Description of User Synchronization
234
+ """
235
+ return pulumi.get(self, "description")
236
+
237
+ @description.setter
238
+ def description(self, value: Optional[pulumi.Input[_builtins.str]]):
239
+ pulumi.set(self, "description", value)
240
+
241
+ @_builtins.property
242
+ @pulumi.getter(name="directoryId")
243
+ def directory_id(self) -> Optional[pulumi.Input[_builtins.str]]:
244
+ """
245
+ The ID of the directory to which the synchronization belongs
246
+ """
247
+ return pulumi.get(self, "directory_id")
248
+
249
+ @directory_id.setter
250
+ def directory_id(self, value: Optional[pulumi.Input[_builtins.str]]):
251
+ pulumi.set(self, "directory_id", value)
252
+
253
+ @_builtins.property
254
+ @pulumi.getter(name="duplicationStrategy")
255
+ def duplication_strategy(self) -> Optional[pulumi.Input[_builtins.str]]:
256
+ """
257
+ Processing Policy for Synchronization Conflicts
258
+ """
259
+ return pulumi.get(self, "duplication_strategy")
260
+
261
+ @duplication_strategy.setter
262
+ def duplication_strategy(self, value: Optional[pulumi.Input[_builtins.str]]):
263
+ pulumi.set(self, "duplication_strategy", value)
264
+
265
+ @_builtins.property
266
+ @pulumi.getter(name="principalId")
267
+ def principal_id(self) -> Optional[pulumi.Input[_builtins.str]]:
268
+ """
269
+ The ID of the CloudSSO user/group associated with the synchronization.
270
+ """
271
+ return pulumi.get(self, "principal_id")
272
+
273
+ @principal_id.setter
274
+ def principal_id(self, value: Optional[pulumi.Input[_builtins.str]]):
275
+ pulumi.set(self, "principal_id", value)
276
+
277
+ @_builtins.property
278
+ @pulumi.getter(name="principalType")
279
+ def principal_type(self) -> Optional[pulumi.Input[_builtins.str]]:
280
+ """
281
+ The ID of the CloudSSO user/group associated with the synchronization.
282
+ """
283
+ return pulumi.get(self, "principal_type")
284
+
285
+ @principal_type.setter
286
+ def principal_type(self, value: Optional[pulumi.Input[_builtins.str]]):
287
+ pulumi.set(self, "principal_type", value)
288
+
289
+ @_builtins.property
290
+ @pulumi.getter
291
+ def status(self) -> Optional[pulumi.Input[_builtins.str]]:
292
+ """
293
+ The status of the resource
294
+ """
295
+ return pulumi.get(self, "status")
296
+
297
+ @status.setter
298
+ def status(self, value: Optional[pulumi.Input[_builtins.str]]):
299
+ pulumi.set(self, "status", value)
300
+
301
+ @_builtins.property
302
+ @pulumi.getter(name="targetId")
303
+ def target_id(self) -> Optional[pulumi.Input[_builtins.str]]:
304
+ """
305
+ The ID of the destination associated with the synchronization.
306
+ """
307
+ return pulumi.get(self, "target_id")
308
+
309
+ @target_id.setter
310
+ def target_id(self, value: Optional[pulumi.Input[_builtins.str]]):
311
+ pulumi.set(self, "target_id", value)
312
+
313
+ @_builtins.property
314
+ @pulumi.getter(name="targetType")
315
+ def target_type(self) -> Optional[pulumi.Input[_builtins.str]]:
316
+ """
317
+ The target type associated with the synchronization
318
+ """
319
+ return pulumi.get(self, "target_type")
320
+
321
+ @target_type.setter
322
+ def target_type(self, value: Optional[pulumi.Input[_builtins.str]]):
323
+ pulumi.set(self, "target_type", value)
324
+
325
+ @_builtins.property
326
+ @pulumi.getter(name="userProvisioningId")
327
+ def user_provisioning_id(self) -> Optional[pulumi.Input[_builtins.str]]:
328
+ """
329
+ The first ID of the resource
330
+ """
331
+ return pulumi.get(self, "user_provisioning_id")
332
+
333
+ @user_provisioning_id.setter
334
+ def user_provisioning_id(self, value: Optional[pulumi.Input[_builtins.str]]):
335
+ pulumi.set(self, "user_provisioning_id", value)
336
+
337
+ @_builtins.property
338
+ @pulumi.getter(name="userProvisioningStatistics")
339
+ def user_provisioning_statistics(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['UserProvisioningUserProvisioningStatisticArgs']]]]:
340
+ """
341
+ User Provisioning statistics
342
+ """
343
+ return pulumi.get(self, "user_provisioning_statistics")
344
+
345
+ @user_provisioning_statistics.setter
346
+ def user_provisioning_statistics(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['UserProvisioningUserProvisioningStatisticArgs']]]]):
347
+ pulumi.set(self, "user_provisioning_statistics", value)
348
+
349
+
350
+ @pulumi.type_token("alicloud:cloudsso/userProvisioning:UserProvisioning")
351
+ class UserProvisioning(pulumi.CustomResource):
352
+ @overload
353
+ def __init__(__self__,
354
+ resource_name: str,
355
+ opts: Optional[pulumi.ResourceOptions] = None,
356
+ deletion_strategy: Optional[pulumi.Input[_builtins.str]] = None,
357
+ description: Optional[pulumi.Input[_builtins.str]] = None,
358
+ directory_id: Optional[pulumi.Input[_builtins.str]] = None,
359
+ duplication_strategy: Optional[pulumi.Input[_builtins.str]] = None,
360
+ principal_id: Optional[pulumi.Input[_builtins.str]] = None,
361
+ principal_type: Optional[pulumi.Input[_builtins.str]] = None,
362
+ target_id: Optional[pulumi.Input[_builtins.str]] = None,
363
+ target_type: Optional[pulumi.Input[_builtins.str]] = None,
364
+ __props__=None):
365
+ """
366
+ Provides a Cloud SSO User Provisioning resource.
367
+
368
+ RAM user synchronization.
369
+
370
+ For information about Cloud SSO User Provisioning and how to use it, see [What is User Provisioning](https://next.api.alibabacloud.com/document/cloudsso/2021-05-15/CreateUserProvisioning).
371
+
372
+ > **NOTE:** Available since v1.260.0.
373
+
374
+ ## Example Usage
375
+
376
+ Basic Usage
377
+
378
+ ```python
379
+ import pulumi
380
+ import pulumi_alicloud as alicloud
381
+ import pulumi_random as random
382
+ import pulumi_std as std
383
+
384
+ config = pulumi.Config()
385
+ name = config.get("name")
386
+ if name is None:
387
+ name = "terraform-example"
388
+ default = alicloud.get_account()
389
+ default_get_directories = alicloud.cloudsso.get_directories()
390
+ default_integer = random.index.Integer("default",
391
+ min=10000,
392
+ max=99999)
393
+ default_directory = []
394
+ def create_default(range_body):
395
+ for range in [{"value": i} for i in range(0, range_body)]:
396
+ default_directory.append(alicloud.cloudsso.Directory(f"default-{range['value']}", directory_name=name))
397
+
398
+ len(default_get_directories.ids).apply(lambda resolved_outputs: create_default(0 if resolved_outputs['length'] > 0 else 1))
399
+ directory_id = len(default_get_directories.ids).apply(lambda length: default_get_directories.ids[0] if length > 0 else std.concat(input=[
400
+ [__item.id for __item in default_directory],
401
+ [""],
402
+ ]).result[0])
403
+ default_user = alicloud.cloudsso.User("default",
404
+ directory_id=directory_id,
405
+ user_name=f"{name}-{default_integer['result']}")
406
+ default_group = alicloud.cloudsso.Group("default",
407
+ directory_id=directory_id,
408
+ group_name=name,
409
+ description=name)
410
+ default_user_provisioning = alicloud.cloudsso.UserProvisioning("default",
411
+ description="description",
412
+ principal_id=default_user.user_id,
413
+ target_type="RD-Account",
414
+ deletion_strategy="Keep",
415
+ duplication_strategy="KeepBoth",
416
+ principal_type="User",
417
+ target_id=default.id,
418
+ directory_id=default_user.directory_id)
419
+ ```
420
+
421
+ ## Import
422
+
423
+ Cloud SSO User Provisioning can be imported using the id, e.g.
424
+
425
+ ```sh
426
+ $ pulumi import alicloud:cloudsso/userProvisioning:UserProvisioning example <directory_id>:<user_provisioning_id>
427
+ ```
428
+
429
+ :param str resource_name: The name of the resource.
430
+ :param pulumi.ResourceOptions opts: Options for the resource.
431
+ :param pulumi.Input[_builtins.str] deletion_strategy: The processing policy for users who have been synchronized when deleting synchronization
432
+ :param pulumi.Input[_builtins.str] description: Description of User Synchronization
433
+ :param pulumi.Input[_builtins.str] directory_id: The ID of the directory to which the synchronization belongs
434
+ :param pulumi.Input[_builtins.str] duplication_strategy: Processing Policy for Synchronization Conflicts
435
+ :param pulumi.Input[_builtins.str] principal_id: The ID of the CloudSSO user/group associated with the synchronization.
436
+ :param pulumi.Input[_builtins.str] principal_type: The ID of the CloudSSO user/group associated with the synchronization.
437
+ :param pulumi.Input[_builtins.str] target_id: The ID of the destination associated with the synchronization.
438
+ :param pulumi.Input[_builtins.str] target_type: The target type associated with the synchronization
439
+ """
440
+ ...
441
+ @overload
442
+ def __init__(__self__,
443
+ resource_name: str,
444
+ args: UserProvisioningArgs,
445
+ opts: Optional[pulumi.ResourceOptions] = None):
446
+ """
447
+ Provides a Cloud SSO User Provisioning resource.
448
+
449
+ RAM user synchronization.
450
+
451
+ For information about Cloud SSO User Provisioning and how to use it, see [What is User Provisioning](https://next.api.alibabacloud.com/document/cloudsso/2021-05-15/CreateUserProvisioning).
452
+
453
+ > **NOTE:** Available since v1.260.0.
454
+
455
+ ## Example Usage
456
+
457
+ Basic Usage
458
+
459
+ ```python
460
+ import pulumi
461
+ import pulumi_alicloud as alicloud
462
+ import pulumi_random as random
463
+ import pulumi_std as std
464
+
465
+ config = pulumi.Config()
466
+ name = config.get("name")
467
+ if name is None:
468
+ name = "terraform-example"
469
+ default = alicloud.get_account()
470
+ default_get_directories = alicloud.cloudsso.get_directories()
471
+ default_integer = random.index.Integer("default",
472
+ min=10000,
473
+ max=99999)
474
+ default_directory = []
475
+ def create_default(range_body):
476
+ for range in [{"value": i} for i in range(0, range_body)]:
477
+ default_directory.append(alicloud.cloudsso.Directory(f"default-{range['value']}", directory_name=name))
478
+
479
+ len(default_get_directories.ids).apply(lambda resolved_outputs: create_default(0 if resolved_outputs['length'] > 0 else 1))
480
+ directory_id = len(default_get_directories.ids).apply(lambda length: default_get_directories.ids[0] if length > 0 else std.concat(input=[
481
+ [__item.id for __item in default_directory],
482
+ [""],
483
+ ]).result[0])
484
+ default_user = alicloud.cloudsso.User("default",
485
+ directory_id=directory_id,
486
+ user_name=f"{name}-{default_integer['result']}")
487
+ default_group = alicloud.cloudsso.Group("default",
488
+ directory_id=directory_id,
489
+ group_name=name,
490
+ description=name)
491
+ default_user_provisioning = alicloud.cloudsso.UserProvisioning("default",
492
+ description="description",
493
+ principal_id=default_user.user_id,
494
+ target_type="RD-Account",
495
+ deletion_strategy="Keep",
496
+ duplication_strategy="KeepBoth",
497
+ principal_type="User",
498
+ target_id=default.id,
499
+ directory_id=default_user.directory_id)
500
+ ```
501
+
502
+ ## Import
503
+
504
+ Cloud SSO User Provisioning can be imported using the id, e.g.
505
+
506
+ ```sh
507
+ $ pulumi import alicloud:cloudsso/userProvisioning:UserProvisioning example <directory_id>:<user_provisioning_id>
508
+ ```
509
+
510
+ :param str resource_name: The name of the resource.
511
+ :param UserProvisioningArgs args: The arguments to use to populate this resource's properties.
512
+ :param pulumi.ResourceOptions opts: Options for the resource.
513
+ """
514
+ ...
515
+ def __init__(__self__, resource_name: str, *args, **kwargs):
516
+ resource_args, opts = _utilities.get_resource_args_opts(UserProvisioningArgs, pulumi.ResourceOptions, *args, **kwargs)
517
+ if resource_args is not None:
518
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
519
+ else:
520
+ __self__._internal_init(resource_name, *args, **kwargs)
521
+
522
+ def _internal_init(__self__,
523
+ resource_name: str,
524
+ opts: Optional[pulumi.ResourceOptions] = None,
525
+ deletion_strategy: Optional[pulumi.Input[_builtins.str]] = None,
526
+ description: Optional[pulumi.Input[_builtins.str]] = None,
527
+ directory_id: Optional[pulumi.Input[_builtins.str]] = None,
528
+ duplication_strategy: Optional[pulumi.Input[_builtins.str]] = None,
529
+ principal_id: Optional[pulumi.Input[_builtins.str]] = None,
530
+ principal_type: Optional[pulumi.Input[_builtins.str]] = None,
531
+ target_id: Optional[pulumi.Input[_builtins.str]] = None,
532
+ target_type: Optional[pulumi.Input[_builtins.str]] = None,
533
+ __props__=None):
534
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
535
+ if not isinstance(opts, pulumi.ResourceOptions):
536
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
537
+ if opts.id is None:
538
+ if __props__ is not None:
539
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
540
+ __props__ = UserProvisioningArgs.__new__(UserProvisioningArgs)
541
+
542
+ if deletion_strategy is None and not opts.urn:
543
+ raise TypeError("Missing required property 'deletion_strategy'")
544
+ __props__.__dict__["deletion_strategy"] = deletion_strategy
545
+ __props__.__dict__["description"] = description
546
+ if directory_id is None and not opts.urn:
547
+ raise TypeError("Missing required property 'directory_id'")
548
+ __props__.__dict__["directory_id"] = directory_id
549
+ if duplication_strategy is None and not opts.urn:
550
+ raise TypeError("Missing required property 'duplication_strategy'")
551
+ __props__.__dict__["duplication_strategy"] = duplication_strategy
552
+ if principal_id is None and not opts.urn:
553
+ raise TypeError("Missing required property 'principal_id'")
554
+ __props__.__dict__["principal_id"] = principal_id
555
+ if principal_type is None and not opts.urn:
556
+ raise TypeError("Missing required property 'principal_type'")
557
+ __props__.__dict__["principal_type"] = principal_type
558
+ if target_id is None and not opts.urn:
559
+ raise TypeError("Missing required property 'target_id'")
560
+ __props__.__dict__["target_id"] = target_id
561
+ if target_type is None and not opts.urn:
562
+ raise TypeError("Missing required property 'target_type'")
563
+ __props__.__dict__["target_type"] = target_type
564
+ __props__.__dict__["create_time"] = None
565
+ __props__.__dict__["status"] = None
566
+ __props__.__dict__["user_provisioning_id"] = None
567
+ __props__.__dict__["user_provisioning_statistics"] = None
568
+ super(UserProvisioning, __self__).__init__(
569
+ 'alicloud:cloudsso/userProvisioning:UserProvisioning',
570
+ resource_name,
571
+ __props__,
572
+ opts)
573
+
574
+ @staticmethod
575
+ def get(resource_name: str,
576
+ id: pulumi.Input[str],
577
+ opts: Optional[pulumi.ResourceOptions] = None,
578
+ create_time: Optional[pulumi.Input[_builtins.str]] = None,
579
+ deletion_strategy: Optional[pulumi.Input[_builtins.str]] = None,
580
+ description: Optional[pulumi.Input[_builtins.str]] = None,
581
+ directory_id: Optional[pulumi.Input[_builtins.str]] = None,
582
+ duplication_strategy: Optional[pulumi.Input[_builtins.str]] = None,
583
+ principal_id: Optional[pulumi.Input[_builtins.str]] = None,
584
+ principal_type: Optional[pulumi.Input[_builtins.str]] = None,
585
+ status: Optional[pulumi.Input[_builtins.str]] = None,
586
+ target_id: Optional[pulumi.Input[_builtins.str]] = None,
587
+ target_type: Optional[pulumi.Input[_builtins.str]] = None,
588
+ user_provisioning_id: Optional[pulumi.Input[_builtins.str]] = None,
589
+ user_provisioning_statistics: Optional[pulumi.Input[Sequence[pulumi.Input[Union['UserProvisioningUserProvisioningStatisticArgs', 'UserProvisioningUserProvisioningStatisticArgsDict']]]]] = None) -> 'UserProvisioning':
590
+ """
591
+ Get an existing UserProvisioning resource's state with the given name, id, and optional extra
592
+ properties used to qualify the lookup.
593
+
594
+ :param str resource_name: The unique name of the resulting resource.
595
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
596
+ :param pulumi.ResourceOptions opts: Options for the resource.
597
+ :param pulumi.Input[_builtins.str] create_time: The creation time of the synchronization
598
+ :param pulumi.Input[_builtins.str] deletion_strategy: The processing policy for users who have been synchronized when deleting synchronization
599
+ :param pulumi.Input[_builtins.str] description: Description of User Synchronization
600
+ :param pulumi.Input[_builtins.str] directory_id: The ID of the directory to which the synchronization belongs
601
+ :param pulumi.Input[_builtins.str] duplication_strategy: Processing Policy for Synchronization Conflicts
602
+ :param pulumi.Input[_builtins.str] principal_id: The ID of the CloudSSO user/group associated with the synchronization.
603
+ :param pulumi.Input[_builtins.str] principal_type: The ID of the CloudSSO user/group associated with the synchronization.
604
+ :param pulumi.Input[_builtins.str] status: The status of the resource
605
+ :param pulumi.Input[_builtins.str] target_id: The ID of the destination associated with the synchronization.
606
+ :param pulumi.Input[_builtins.str] target_type: The target type associated with the synchronization
607
+ :param pulumi.Input[_builtins.str] user_provisioning_id: The first ID of the resource
608
+ :param pulumi.Input[Sequence[pulumi.Input[Union['UserProvisioningUserProvisioningStatisticArgs', 'UserProvisioningUserProvisioningStatisticArgsDict']]]] user_provisioning_statistics: User Provisioning statistics
609
+ """
610
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
611
+
612
+ __props__ = _UserProvisioningState.__new__(_UserProvisioningState)
613
+
614
+ __props__.__dict__["create_time"] = create_time
615
+ __props__.__dict__["deletion_strategy"] = deletion_strategy
616
+ __props__.__dict__["description"] = description
617
+ __props__.__dict__["directory_id"] = directory_id
618
+ __props__.__dict__["duplication_strategy"] = duplication_strategy
619
+ __props__.__dict__["principal_id"] = principal_id
620
+ __props__.__dict__["principal_type"] = principal_type
621
+ __props__.__dict__["status"] = status
622
+ __props__.__dict__["target_id"] = target_id
623
+ __props__.__dict__["target_type"] = target_type
624
+ __props__.__dict__["user_provisioning_id"] = user_provisioning_id
625
+ __props__.__dict__["user_provisioning_statistics"] = user_provisioning_statistics
626
+ return UserProvisioning(resource_name, opts=opts, __props__=__props__)
627
+
628
+ @_builtins.property
629
+ @pulumi.getter(name="createTime")
630
+ def create_time(self) -> pulumi.Output[_builtins.str]:
631
+ """
632
+ The creation time of the synchronization
633
+ """
634
+ return pulumi.get(self, "create_time")
635
+
636
+ @_builtins.property
637
+ @pulumi.getter(name="deletionStrategy")
638
+ def deletion_strategy(self) -> pulumi.Output[_builtins.str]:
639
+ """
640
+ The processing policy for users who have been synchronized when deleting synchronization
641
+ """
642
+ return pulumi.get(self, "deletion_strategy")
643
+
644
+ @_builtins.property
645
+ @pulumi.getter
646
+ def description(self) -> pulumi.Output[Optional[_builtins.str]]:
647
+ """
648
+ Description of User Synchronization
649
+ """
650
+ return pulumi.get(self, "description")
651
+
652
+ @_builtins.property
653
+ @pulumi.getter(name="directoryId")
654
+ def directory_id(self) -> pulumi.Output[_builtins.str]:
655
+ """
656
+ The ID of the directory to which the synchronization belongs
657
+ """
658
+ return pulumi.get(self, "directory_id")
659
+
660
+ @_builtins.property
661
+ @pulumi.getter(name="duplicationStrategy")
662
+ def duplication_strategy(self) -> pulumi.Output[_builtins.str]:
663
+ """
664
+ Processing Policy for Synchronization Conflicts
665
+ """
666
+ return pulumi.get(self, "duplication_strategy")
667
+
668
+ @_builtins.property
669
+ @pulumi.getter(name="principalId")
670
+ def principal_id(self) -> pulumi.Output[_builtins.str]:
671
+ """
672
+ The ID of the CloudSSO user/group associated with the synchronization.
673
+ """
674
+ return pulumi.get(self, "principal_id")
675
+
676
+ @_builtins.property
677
+ @pulumi.getter(name="principalType")
678
+ def principal_type(self) -> pulumi.Output[_builtins.str]:
679
+ """
680
+ The ID of the CloudSSO user/group associated with the synchronization.
681
+ """
682
+ return pulumi.get(self, "principal_type")
683
+
684
+ @_builtins.property
685
+ @pulumi.getter
686
+ def status(self) -> pulumi.Output[_builtins.str]:
687
+ """
688
+ The status of the resource
689
+ """
690
+ return pulumi.get(self, "status")
691
+
692
+ @_builtins.property
693
+ @pulumi.getter(name="targetId")
694
+ def target_id(self) -> pulumi.Output[_builtins.str]:
695
+ """
696
+ The ID of the destination associated with the synchronization.
697
+ """
698
+ return pulumi.get(self, "target_id")
699
+
700
+ @_builtins.property
701
+ @pulumi.getter(name="targetType")
702
+ def target_type(self) -> pulumi.Output[_builtins.str]:
703
+ """
704
+ The target type associated with the synchronization
705
+ """
706
+ return pulumi.get(self, "target_type")
707
+
708
+ @_builtins.property
709
+ @pulumi.getter(name="userProvisioningId")
710
+ def user_provisioning_id(self) -> pulumi.Output[_builtins.str]:
711
+ """
712
+ The first ID of the resource
713
+ """
714
+ return pulumi.get(self, "user_provisioning_id")
715
+
716
+ @_builtins.property
717
+ @pulumi.getter(name="userProvisioningStatistics")
718
+ def user_provisioning_statistics(self) -> pulumi.Output[Sequence['outputs.UserProvisioningUserProvisioningStatistic']]:
719
+ """
720
+ User Provisioning statistics
721
+ """
722
+ return pulumi.get(self, "user_provisioning_statistics")
723
+