pulumi-alicloud 3.77.0a1746163013__py3-none-any.whl → 3.78.0a1746422202__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-alicloud might be problematic. Click here for more details.

Files changed (83) hide show
  1. pulumi_alicloud/__init__.py +72 -0
  2. pulumi_alicloud/_inputs.py +13 -0
  3. pulumi_alicloud/adb/db_cluster_lake_version.py +94 -0
  4. pulumi_alicloud/alb/_inputs.py +6 -3
  5. pulumi_alicloud/alb/outputs.py +4 -2
  6. pulumi_alicloud/apig/environment.py +2 -2
  7. pulumi_alicloud/apig/http_api.py +2 -2
  8. pulumi_alicloud/arms/grafana_workspace.py +56 -14
  9. pulumi_alicloud/cloudfirewall/instance_member.py +4 -4
  10. pulumi_alicloud/cloudfirewall/vpc_cen_tr_firewall.py +2 -2
  11. pulumi_alicloud/cloudsso/_inputs.py +697 -7
  12. pulumi_alicloud/cloudsso/directory.py +345 -65
  13. pulumi_alicloud/cloudsso/outputs.py +557 -8
  14. pulumi_alicloud/config/outputs.py +8 -0
  15. pulumi_alicloud/cs/_inputs.py +18 -18
  16. pulumi_alicloud/cs/edge_kubernetes.py +136 -100
  17. pulumi_alicloud/cs/get_kubernetes_node_pools.py +21 -1
  18. pulumi_alicloud/cs/kubernetes.py +118 -39
  19. pulumi_alicloud/cs/managed_kubernetes.py +125 -46
  20. pulumi_alicloud/cs/outputs.py +14 -14
  21. pulumi_alicloud/cs/serverless_kubernetes.py +66 -73
  22. pulumi_alicloud/ddos/ddos_coo_instance.py +175 -25
  23. pulumi_alicloud/dns/ddos_coo_instance.py +175 -25
  24. pulumi_alicloud/dts/job_monitor_rule.py +2 -2
  25. pulumi_alicloud/dts/synchronization_job.py +2 -2
  26. pulumi_alicloud/ecs/get_instance_types.py +4 -4
  27. pulumi_alicloud/ecs/instance.py +28 -28
  28. pulumi_alicloud/ecs/outputs.py +2 -2
  29. pulumi_alicloud/ecs/security_group_rule.py +32 -4
  30. pulumi_alicloud/eflo/__init__.py +3 -0
  31. pulumi_alicloud/eflo/_inputs.py +623 -0
  32. pulumi_alicloud/eflo/experiment_plan.py +573 -0
  33. pulumi_alicloud/eflo/experiment_plan_template.py +464 -0
  34. pulumi_alicloud/eflo/outputs.py +476 -0
  35. pulumi_alicloud/eflo/resource.py +388 -0
  36. pulumi_alicloud/ens/disk.py +120 -69
  37. pulumi_alicloud/ens/eip.py +45 -41
  38. pulumi_alicloud/esa/__init__.py +2 -0
  39. pulumi_alicloud/esa/scheduled_preload_execution.py +479 -0
  40. pulumi_alicloud/esa/scheduled_preload_job.py +467 -0
  41. pulumi_alicloud/gwlb/listener.py +2 -2
  42. pulumi_alicloud/gwlb/load_balancer.py +2 -2
  43. pulumi_alicloud/gwlb/server_group.py +2 -2
  44. pulumi_alicloud/ims/__init__.py +2 -0
  45. pulumi_alicloud/ims/get_oidc_providers.py +216 -0
  46. pulumi_alicloud/ims/outputs.py +138 -0
  47. pulumi_alicloud/mongodb/__init__.py +2 -0
  48. pulumi_alicloud/mongodb/_inputs.py +154 -0
  49. pulumi_alicloud/mongodb/instance.py +7 -7
  50. pulumi_alicloud/mongodb/outputs.py +121 -0
  51. pulumi_alicloud/mongodb/public_network_address.py +275 -0
  52. pulumi_alicloud/mongodb/replica_set_role.py +533 -0
  53. pulumi_alicloud/nas/_inputs.py +252 -18
  54. pulumi_alicloud/nas/file_system.py +649 -264
  55. pulumi_alicloud/nas/outputs.py +198 -12
  56. pulumi_alicloud/nlb/server_group_server_attachment.py +4 -0
  57. pulumi_alicloud/pai/__init__.py +1 -0
  58. pulumi_alicloud/pai/flow_pipeline.py +491 -0
  59. pulumi_alicloud/pulumi-plugin.json +1 -1
  60. pulumi_alicloud/ram/__init__.py +1 -0
  61. pulumi_alicloud/ram/get_role_policy_attachments.py +272 -0
  62. pulumi_alicloud/ram/outputs.py +63 -0
  63. pulumi_alicloud/ram/security_preference.py +496 -110
  64. pulumi_alicloud/rdc/organization.py +2 -2
  65. pulumi_alicloud/rds/instance.py +1 -1
  66. pulumi_alicloud/sae/application_scaling_rule.py +2 -2
  67. pulumi_alicloud/sae/ingress.py +2 -2
  68. pulumi_alicloud/schedulerx/app_group.py +2 -2
  69. pulumi_alicloud/schedulerx/job.py +2 -2
  70. pulumi_alicloud/selectdb/db_cluster.py +2 -0
  71. pulumi_alicloud/selectdb/db_instance.py +43 -13
  72. pulumi_alicloud/selectdb/get_db_clusters.py +2 -0
  73. pulumi_alicloud/selectdb/get_db_instances.py +2 -0
  74. pulumi_alicloud/selectdb/outputs.py +3 -3
  75. pulumi_alicloud/sls/__init__.py +1 -0
  76. pulumi_alicloud/sls/_inputs.py +295 -0
  77. pulumi_alicloud/sls/etl.py +516 -0
  78. pulumi_alicloud/sls/outputs.py +209 -0
  79. pulumi_alicloud/vpc/network.py +156 -88
  80. {pulumi_alicloud-3.77.0a1746163013.dist-info → pulumi_alicloud-3.78.0a1746422202.dist-info}/METADATA +1 -1
  81. {pulumi_alicloud-3.77.0a1746163013.dist-info → pulumi_alicloud-3.78.0a1746422202.dist-info}/RECORD +83 -71
  82. {pulumi_alicloud-3.77.0a1746163013.dist-info → pulumi_alicloud-3.78.0a1746422202.dist-info}/WHEEL +1 -1
  83. {pulumi_alicloud-3.77.0a1746163013.dist-info → pulumi_alicloud-3.78.0a1746422202.dist-info}/top_level.txt +0 -0
@@ -21,31 +21,72 @@ __all__ = ['SecurityPreferenceArgs', 'SecurityPreference']
21
21
  class SecurityPreferenceArgs:
22
22
  def __init__(__self__, *,
23
23
  allow_user_to_change_password: Optional[pulumi.Input[builtins.bool]] = None,
24
+ allow_user_to_login_with_passkey: Optional[pulumi.Input[builtins.bool]] = None,
24
25
  allow_user_to_manage_access_keys: Optional[pulumi.Input[builtins.bool]] = None,
25
26
  allow_user_to_manage_mfa_devices: Optional[pulumi.Input[builtins.bool]] = None,
27
+ allow_user_to_manage_personal_ding_talk: Optional[pulumi.Input[builtins.bool]] = None,
26
28
  enable_save_mfa_ticket: Optional[pulumi.Input[builtins.bool]] = None,
27
29
  enforce_mfa_for_login: Optional[pulumi.Input[builtins.bool]] = None,
28
30
  login_network_masks: Optional[pulumi.Input[builtins.str]] = None,
29
- login_session_duration: Optional[pulumi.Input[builtins.int]] = None):
31
+ login_session_duration: Optional[pulumi.Input[builtins.int]] = None,
32
+ mfa_operation_for_login: Optional[pulumi.Input[builtins.str]] = None,
33
+ operation_for_risk_login: Optional[pulumi.Input[builtins.str]] = None,
34
+ verification_types: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None):
30
35
  """
31
36
  The set of arguments for constructing a SecurityPreference resource.
32
- :param pulumi.Input[builtins.bool] allow_user_to_change_password: Specifies whether RAM users can change their passwords. Valid values: `true` and `false`
33
- :param pulumi.Input[builtins.bool] allow_user_to_manage_access_keys: Specifies whether RAM users can manage their AccessKey pairs. Valid values: `true` and `false`
34
- :param pulumi.Input[builtins.bool] allow_user_to_manage_mfa_devices: Specifies whether RAM users can manage their MFA devices. Valid values: `true` and `false`
35
- :param pulumi.Input[builtins.bool] enable_save_mfa_ticket: Specifies whether to remember the MFA devices for seven days. Valid values: `true` and `false`
36
- :param pulumi.Input[builtins.bool] enforce_mfa_for_login: Specifies whether MFA is required for all RAM users when they log on to the Alibaba Cloud Management Console by using usernames and passwords. Valid values: `true` and `false`
37
- :param pulumi.Input[builtins.str] login_network_masks: The subnet mask that specifies the IP addresses from which you can log on to the Alibaba Cloud Management Console. This parameter takes effect on password-based logon and single sign-on (SSO). However, this parameter does not take effect on API calls that are authenticated by using AccessKey pairs.**NOTE:** You can specify up to 25 subnet masks. The total length of the subnet masks can be a maximum of 512 characters.
38
- * If you specify a subnet mask, RAM users can use only the IP addresses in the subnet mask to log on to the Alibaba Cloud Management Console.
39
- * If you do not specify a subnet mask, RAM users can use all IP addresses to log on to the Alibaba Cloud Management Console.
40
- * If you need to specify multiple subnet masks, separate the subnet masks with semicolons (;). Example: 192.168.0.0/16;10.0.0.0/8.
41
- :param pulumi.Input[builtins.int] login_session_duration: The validity period of the logon session of RAM users. Valid values: 6 to 24. Unit: hours. Default value: 6.
37
+ :param pulumi.Input[builtins.bool] allow_user_to_change_password: Whether to allow RAM users to manage their own passwords. Value:
38
+ - true (default): Allowed.
39
+ - false: not allowed.
40
+ :param pulumi.Input[builtins.bool] allow_user_to_login_with_passkey: Whether to allow RAM users to log on using a passkey. Value:
41
+ - true (default): Allowed.
42
+ - false: not allowed.
43
+ :param pulumi.Input[builtins.bool] allow_user_to_manage_access_keys: Whether to allow RAM users to manage their own access keys. Value:
44
+ - true: Allow.
45
+ - false (default): Not allowed.
46
+ :param pulumi.Input[builtins.bool] allow_user_to_manage_mfa_devices: Whether to allow RAM users to manage multi-factor authentication devices. Value:
47
+ - true (default): Allowed.
48
+ - false: not allowed.
49
+ :param pulumi.Input[builtins.bool] allow_user_to_manage_personal_ding_talk: Whether to allow RAM users to independently manage the binding and unbinding of personal DingTalk. Value:
50
+ - true (default): Allowed.
51
+ - false: not allowed.
52
+ :param pulumi.Input[builtins.bool] enable_save_mfa_ticket: Whether to save the verification status of a RAM user after logging in using multi-factor authentication. The validity period is 7 days. Value:
53
+ - true: Allow.
54
+ - false (default): Not allowed.
55
+ :param pulumi.Input[builtins.bool] enforce_mfa_for_login: Field `enforce_mfa_for_login` has been deprecated from provider version 1.248.0. New field `mfa_operation_for_login` instead.
56
+ Specifies whether MFA is required for all RAM users when they log on to the Alibaba Cloud Management Console by using usernames and passwords. Valid values: `true` and `false`
57
+ :param pulumi.Input[builtins.str] login_network_masks: The login mask. The logon mask determines which IP addresses are affected by the logon console, including password logon and single sign-on (SSO), but API calls made using the access key are not affected.
58
+ - If the mask is specified, RAM users can only log on from the specified IP address.
59
+ - If you do not specify any mask, the login console function will apply to the entire network.
60
+
61
+ When you need to configure multiple login masks, use a semicolon (;) to separate them, for example: 192.168.0.0/16;10.0.0.0/8.
62
+
63
+ Configure a maximum of 40 logon masks, with a total length of 512 characters.
64
+ :param pulumi.Input[builtins.int] login_session_duration: The validity period of the logon session of RAM users.
65
+ Valid values: 1 to 24. Unit: hours.
66
+ Default value: 6.
67
+ :param pulumi.Input[builtins.str] mfa_operation_for_login: MFA must be used during logon (replace the original EnforceMFAForLogin parameter, the original parameter is still valid, we recommend that you update it to a new parameter). Value:
68
+ - mandatory: mandatory for all RAM users. The original value of EnforceMFAForLogin is true.
69
+ - independent (default): depends on the independent configuration of each RAM user. The original value of EnforceMFAForLogin is false.
70
+ - adaptive: Used only during abnormal login.
71
+ :param pulumi.Input[builtins.str] operation_for_risk_login: Whether MFA is verified twice during abnormal logon. Value:
72
+ - autonomous (default): Skip, do not force binding.
73
+ - enforceVerify: Force binding validation.
74
+ :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] verification_types: Means of multi-factor authentication. Value:
75
+ - sms: secure phone.
76
+ - email: Secure mailbox.
77
+
78
+ The following arguments will be discarded. Please use new fields as soon as possible:
42
79
  """
43
80
  if allow_user_to_change_password is not None:
44
81
  pulumi.set(__self__, "allow_user_to_change_password", allow_user_to_change_password)
82
+ if allow_user_to_login_with_passkey is not None:
83
+ pulumi.set(__self__, "allow_user_to_login_with_passkey", allow_user_to_login_with_passkey)
45
84
  if allow_user_to_manage_access_keys is not None:
46
85
  pulumi.set(__self__, "allow_user_to_manage_access_keys", allow_user_to_manage_access_keys)
47
86
  if allow_user_to_manage_mfa_devices is not None:
48
87
  pulumi.set(__self__, "allow_user_to_manage_mfa_devices", allow_user_to_manage_mfa_devices)
88
+ if allow_user_to_manage_personal_ding_talk is not None:
89
+ pulumi.set(__self__, "allow_user_to_manage_personal_ding_talk", allow_user_to_manage_personal_ding_talk)
49
90
  if enable_save_mfa_ticket is not None:
50
91
  pulumi.set(__self__, "enable_save_mfa_ticket", enable_save_mfa_ticket)
51
92
  if enforce_mfa_for_login is not None:
@@ -54,12 +95,20 @@ class SecurityPreferenceArgs:
54
95
  pulumi.set(__self__, "login_network_masks", login_network_masks)
55
96
  if login_session_duration is not None:
56
97
  pulumi.set(__self__, "login_session_duration", login_session_duration)
98
+ if mfa_operation_for_login is not None:
99
+ pulumi.set(__self__, "mfa_operation_for_login", mfa_operation_for_login)
100
+ if operation_for_risk_login is not None:
101
+ pulumi.set(__self__, "operation_for_risk_login", operation_for_risk_login)
102
+ if verification_types is not None:
103
+ pulumi.set(__self__, "verification_types", verification_types)
57
104
 
58
105
  @property
59
106
  @pulumi.getter(name="allowUserToChangePassword")
60
107
  def allow_user_to_change_password(self) -> Optional[pulumi.Input[builtins.bool]]:
61
108
  """
62
- Specifies whether RAM users can change their passwords. Valid values: `true` and `false`
109
+ Whether to allow RAM users to manage their own passwords. Value:
110
+ - true (default): Allowed.
111
+ - false: not allowed.
63
112
  """
64
113
  return pulumi.get(self, "allow_user_to_change_password")
65
114
 
@@ -67,11 +116,27 @@ class SecurityPreferenceArgs:
67
116
  def allow_user_to_change_password(self, value: Optional[pulumi.Input[builtins.bool]]):
68
117
  pulumi.set(self, "allow_user_to_change_password", value)
69
118
 
119
+ @property
120
+ @pulumi.getter(name="allowUserToLoginWithPasskey")
121
+ def allow_user_to_login_with_passkey(self) -> Optional[pulumi.Input[builtins.bool]]:
122
+ """
123
+ Whether to allow RAM users to log on using a passkey. Value:
124
+ - true (default): Allowed.
125
+ - false: not allowed.
126
+ """
127
+ return pulumi.get(self, "allow_user_to_login_with_passkey")
128
+
129
+ @allow_user_to_login_with_passkey.setter
130
+ def allow_user_to_login_with_passkey(self, value: Optional[pulumi.Input[builtins.bool]]):
131
+ pulumi.set(self, "allow_user_to_login_with_passkey", value)
132
+
70
133
  @property
71
134
  @pulumi.getter(name="allowUserToManageAccessKeys")
72
135
  def allow_user_to_manage_access_keys(self) -> Optional[pulumi.Input[builtins.bool]]:
73
136
  """
74
- Specifies whether RAM users can manage their AccessKey pairs. Valid values: `true` and `false`
137
+ Whether to allow RAM users to manage their own access keys. Value:
138
+ - true: Allow.
139
+ - false (default): Not allowed.
75
140
  """
76
141
  return pulumi.get(self, "allow_user_to_manage_access_keys")
77
142
 
@@ -83,7 +148,9 @@ class SecurityPreferenceArgs:
83
148
  @pulumi.getter(name="allowUserToManageMfaDevices")
84
149
  def allow_user_to_manage_mfa_devices(self) -> Optional[pulumi.Input[builtins.bool]]:
85
150
  """
86
- Specifies whether RAM users can manage their MFA devices. Valid values: `true` and `false`
151
+ Whether to allow RAM users to manage multi-factor authentication devices. Value:
152
+ - true (default): Allowed.
153
+ - false: not allowed.
87
154
  """
88
155
  return pulumi.get(self, "allow_user_to_manage_mfa_devices")
89
156
 
@@ -91,11 +158,27 @@ class SecurityPreferenceArgs:
91
158
  def allow_user_to_manage_mfa_devices(self, value: Optional[pulumi.Input[builtins.bool]]):
92
159
  pulumi.set(self, "allow_user_to_manage_mfa_devices", value)
93
160
 
161
+ @property
162
+ @pulumi.getter(name="allowUserToManagePersonalDingTalk")
163
+ def allow_user_to_manage_personal_ding_talk(self) -> Optional[pulumi.Input[builtins.bool]]:
164
+ """
165
+ Whether to allow RAM users to independently manage the binding and unbinding of personal DingTalk. Value:
166
+ - true (default): Allowed.
167
+ - false: not allowed.
168
+ """
169
+ return pulumi.get(self, "allow_user_to_manage_personal_ding_talk")
170
+
171
+ @allow_user_to_manage_personal_ding_talk.setter
172
+ def allow_user_to_manage_personal_ding_talk(self, value: Optional[pulumi.Input[builtins.bool]]):
173
+ pulumi.set(self, "allow_user_to_manage_personal_ding_talk", value)
174
+
94
175
  @property
95
176
  @pulumi.getter(name="enableSaveMfaTicket")
96
177
  def enable_save_mfa_ticket(self) -> Optional[pulumi.Input[builtins.bool]]:
97
178
  """
98
- Specifies whether to remember the MFA devices for seven days. Valid values: `true` and `false`
179
+ Whether to save the verification status of a RAM user after logging in using multi-factor authentication. The validity period is 7 days. Value:
180
+ - true: Allow.
181
+ - false (default): Not allowed.
99
182
  """
100
183
  return pulumi.get(self, "enable_save_mfa_ticket")
101
184
 
@@ -107,6 +190,7 @@ class SecurityPreferenceArgs:
107
190
  @pulumi.getter(name="enforceMfaForLogin")
108
191
  def enforce_mfa_for_login(self) -> Optional[pulumi.Input[builtins.bool]]:
109
192
  """
193
+ Field `enforce_mfa_for_login` has been deprecated from provider version 1.248.0. New field `mfa_operation_for_login` instead.
110
194
  Specifies whether MFA is required for all RAM users when they log on to the Alibaba Cloud Management Console by using usernames and passwords. Valid values: `true` and `false`
111
195
  """
112
196
  return pulumi.get(self, "enforce_mfa_for_login")
@@ -119,10 +203,13 @@ class SecurityPreferenceArgs:
119
203
  @pulumi.getter(name="loginNetworkMasks")
120
204
  def login_network_masks(self) -> Optional[pulumi.Input[builtins.str]]:
121
205
  """
122
- The subnet mask that specifies the IP addresses from which you can log on to the Alibaba Cloud Management Console. This parameter takes effect on password-based logon and single sign-on (SSO). However, this parameter does not take effect on API calls that are authenticated by using AccessKey pairs.**NOTE:** You can specify up to 25 subnet masks. The total length of the subnet masks can be a maximum of 512 characters.
123
- * If you specify a subnet mask, RAM users can use only the IP addresses in the subnet mask to log on to the Alibaba Cloud Management Console.
124
- * If you do not specify a subnet mask, RAM users can use all IP addresses to log on to the Alibaba Cloud Management Console.
125
- * If you need to specify multiple subnet masks, separate the subnet masks with semicolons (;). Example: 192.168.0.0/16;10.0.0.0/8.
206
+ The login mask. The logon mask determines which IP addresses are affected by the logon console, including password logon and single sign-on (SSO), but API calls made using the access key are not affected.
207
+ - If the mask is specified, RAM users can only log on from the specified IP address.
208
+ - If you do not specify any mask, the login console function will apply to the entire network.
209
+
210
+ When you need to configure multiple login masks, use a semicolon (;) to separate them, for example: 192.168.0.0/16;10.0.0.0/8.
211
+
212
+ Configure a maximum of 40 logon masks, with a total length of 512 characters.
126
213
  """
127
214
  return pulumi.get(self, "login_network_masks")
128
215
 
@@ -134,7 +221,9 @@ class SecurityPreferenceArgs:
134
221
  @pulumi.getter(name="loginSessionDuration")
135
222
  def login_session_duration(self) -> Optional[pulumi.Input[builtins.int]]:
136
223
  """
137
- The validity period of the logon session of RAM users. Valid values: 6 to 24. Unit: hours. Default value: 6.
224
+ The validity period of the logon session of RAM users.
225
+ Valid values: 1 to 24. Unit: hours.
226
+ Default value: 6.
138
227
  """
139
228
  return pulumi.get(self, "login_session_duration")
140
229
 
@@ -142,36 +231,122 @@ class SecurityPreferenceArgs:
142
231
  def login_session_duration(self, value: Optional[pulumi.Input[builtins.int]]):
143
232
  pulumi.set(self, "login_session_duration", value)
144
233
 
234
+ @property
235
+ @pulumi.getter(name="mfaOperationForLogin")
236
+ def mfa_operation_for_login(self) -> Optional[pulumi.Input[builtins.str]]:
237
+ """
238
+ MFA must be used during logon (replace the original EnforceMFAForLogin parameter, the original parameter is still valid, we recommend that you update it to a new parameter). Value:
239
+ - mandatory: mandatory for all RAM users. The original value of EnforceMFAForLogin is true.
240
+ - independent (default): depends on the independent configuration of each RAM user. The original value of EnforceMFAForLogin is false.
241
+ - adaptive: Used only during abnormal login.
242
+ """
243
+ return pulumi.get(self, "mfa_operation_for_login")
244
+
245
+ @mfa_operation_for_login.setter
246
+ def mfa_operation_for_login(self, value: Optional[pulumi.Input[builtins.str]]):
247
+ pulumi.set(self, "mfa_operation_for_login", value)
248
+
249
+ @property
250
+ @pulumi.getter(name="operationForRiskLogin")
251
+ def operation_for_risk_login(self) -> Optional[pulumi.Input[builtins.str]]:
252
+ """
253
+ Whether MFA is verified twice during abnormal logon. Value:
254
+ - autonomous (default): Skip, do not force binding.
255
+ - enforceVerify: Force binding validation.
256
+ """
257
+ return pulumi.get(self, "operation_for_risk_login")
258
+
259
+ @operation_for_risk_login.setter
260
+ def operation_for_risk_login(self, value: Optional[pulumi.Input[builtins.str]]):
261
+ pulumi.set(self, "operation_for_risk_login", value)
262
+
263
+ @property
264
+ @pulumi.getter(name="verificationTypes")
265
+ def verification_types(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]:
266
+ """
267
+ Means of multi-factor authentication. Value:
268
+ - sms: secure phone.
269
+ - email: Secure mailbox.
270
+
271
+ The following arguments will be discarded. Please use new fields as soon as possible:
272
+ """
273
+ return pulumi.get(self, "verification_types")
274
+
275
+ @verification_types.setter
276
+ def verification_types(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]):
277
+ pulumi.set(self, "verification_types", value)
278
+
145
279
 
146
280
  @pulumi.input_type
147
281
  class _SecurityPreferenceState:
148
282
  def __init__(__self__, *,
149
283
  allow_user_to_change_password: Optional[pulumi.Input[builtins.bool]] = None,
284
+ allow_user_to_login_with_passkey: Optional[pulumi.Input[builtins.bool]] = None,
150
285
  allow_user_to_manage_access_keys: Optional[pulumi.Input[builtins.bool]] = None,
151
286
  allow_user_to_manage_mfa_devices: Optional[pulumi.Input[builtins.bool]] = None,
287
+ allow_user_to_manage_personal_ding_talk: Optional[pulumi.Input[builtins.bool]] = None,
152
288
  enable_save_mfa_ticket: Optional[pulumi.Input[builtins.bool]] = None,
153
289
  enforce_mfa_for_login: Optional[pulumi.Input[builtins.bool]] = None,
154
290
  login_network_masks: Optional[pulumi.Input[builtins.str]] = None,
155
- login_session_duration: Optional[pulumi.Input[builtins.int]] = None):
291
+ login_session_duration: Optional[pulumi.Input[builtins.int]] = None,
292
+ mfa_operation_for_login: Optional[pulumi.Input[builtins.str]] = None,
293
+ operation_for_risk_login: Optional[pulumi.Input[builtins.str]] = None,
294
+ verification_types: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None):
156
295
  """
157
296
  Input properties used for looking up and filtering SecurityPreference resources.
158
- :param pulumi.Input[builtins.bool] allow_user_to_change_password: Specifies whether RAM users can change their passwords. Valid values: `true` and `false`
159
- :param pulumi.Input[builtins.bool] allow_user_to_manage_access_keys: Specifies whether RAM users can manage their AccessKey pairs. Valid values: `true` and `false`
160
- :param pulumi.Input[builtins.bool] allow_user_to_manage_mfa_devices: Specifies whether RAM users can manage their MFA devices. Valid values: `true` and `false`
161
- :param pulumi.Input[builtins.bool] enable_save_mfa_ticket: Specifies whether to remember the MFA devices for seven days. Valid values: `true` and `false`
162
- :param pulumi.Input[builtins.bool] enforce_mfa_for_login: Specifies whether MFA is required for all RAM users when they log on to the Alibaba Cloud Management Console by using usernames and passwords. Valid values: `true` and `false`
163
- :param pulumi.Input[builtins.str] login_network_masks: The subnet mask that specifies the IP addresses from which you can log on to the Alibaba Cloud Management Console. This parameter takes effect on password-based logon and single sign-on (SSO). However, this parameter does not take effect on API calls that are authenticated by using AccessKey pairs.**NOTE:** You can specify up to 25 subnet masks. The total length of the subnet masks can be a maximum of 512 characters.
164
- * If you specify a subnet mask, RAM users can use only the IP addresses in the subnet mask to log on to the Alibaba Cloud Management Console.
165
- * If you do not specify a subnet mask, RAM users can use all IP addresses to log on to the Alibaba Cloud Management Console.
166
- * If you need to specify multiple subnet masks, separate the subnet masks with semicolons (;). Example: 192.168.0.0/16;10.0.0.0/8.
167
- :param pulumi.Input[builtins.int] login_session_duration: The validity period of the logon session of RAM users. Valid values: 6 to 24. Unit: hours. Default value: 6.
297
+ :param pulumi.Input[builtins.bool] allow_user_to_change_password: Whether to allow RAM users to manage their own passwords. Value:
298
+ - true (default): Allowed.
299
+ - false: not allowed.
300
+ :param pulumi.Input[builtins.bool] allow_user_to_login_with_passkey: Whether to allow RAM users to log on using a passkey. Value:
301
+ - true (default): Allowed.
302
+ - false: not allowed.
303
+ :param pulumi.Input[builtins.bool] allow_user_to_manage_access_keys: Whether to allow RAM users to manage their own access keys. Value:
304
+ - true: Allow.
305
+ - false (default): Not allowed.
306
+ :param pulumi.Input[builtins.bool] allow_user_to_manage_mfa_devices: Whether to allow RAM users to manage multi-factor authentication devices. Value:
307
+ - true (default): Allowed.
308
+ - false: not allowed.
309
+ :param pulumi.Input[builtins.bool] allow_user_to_manage_personal_ding_talk: Whether to allow RAM users to independently manage the binding and unbinding of personal DingTalk. Value:
310
+ - true (default): Allowed.
311
+ - false: not allowed.
312
+ :param pulumi.Input[builtins.bool] enable_save_mfa_ticket: Whether to save the verification status of a RAM user after logging in using multi-factor authentication. The validity period is 7 days. Value:
313
+ - true: Allow.
314
+ - false (default): Not allowed.
315
+ :param pulumi.Input[builtins.bool] enforce_mfa_for_login: Field `enforce_mfa_for_login` has been deprecated from provider version 1.248.0. New field `mfa_operation_for_login` instead.
316
+ Specifies whether MFA is required for all RAM users when they log on to the Alibaba Cloud Management Console by using usernames and passwords. Valid values: `true` and `false`
317
+ :param pulumi.Input[builtins.str] login_network_masks: The login mask. The logon mask determines which IP addresses are affected by the logon console, including password logon and single sign-on (SSO), but API calls made using the access key are not affected.
318
+ - If the mask is specified, RAM users can only log on from the specified IP address.
319
+ - If you do not specify any mask, the login console function will apply to the entire network.
320
+
321
+ When you need to configure multiple login masks, use a semicolon (;) to separate them, for example: 192.168.0.0/16;10.0.0.0/8.
322
+
323
+ Configure a maximum of 40 logon masks, with a total length of 512 characters.
324
+ :param pulumi.Input[builtins.int] login_session_duration: The validity period of the logon session of RAM users.
325
+ Valid values: 1 to 24. Unit: hours.
326
+ Default value: 6.
327
+ :param pulumi.Input[builtins.str] mfa_operation_for_login: MFA must be used during logon (replace the original EnforceMFAForLogin parameter, the original parameter is still valid, we recommend that you update it to a new parameter). Value:
328
+ - mandatory: mandatory for all RAM users. The original value of EnforceMFAForLogin is true.
329
+ - independent (default): depends on the independent configuration of each RAM user. The original value of EnforceMFAForLogin is false.
330
+ - adaptive: Used only during abnormal login.
331
+ :param pulumi.Input[builtins.str] operation_for_risk_login: Whether MFA is verified twice during abnormal logon. Value:
332
+ - autonomous (default): Skip, do not force binding.
333
+ - enforceVerify: Force binding validation.
334
+ :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] verification_types: Means of multi-factor authentication. Value:
335
+ - sms: secure phone.
336
+ - email: Secure mailbox.
337
+
338
+ The following arguments will be discarded. Please use new fields as soon as possible:
168
339
  """
169
340
  if allow_user_to_change_password is not None:
170
341
  pulumi.set(__self__, "allow_user_to_change_password", allow_user_to_change_password)
342
+ if allow_user_to_login_with_passkey is not None:
343
+ pulumi.set(__self__, "allow_user_to_login_with_passkey", allow_user_to_login_with_passkey)
171
344
  if allow_user_to_manage_access_keys is not None:
172
345
  pulumi.set(__self__, "allow_user_to_manage_access_keys", allow_user_to_manage_access_keys)
173
346
  if allow_user_to_manage_mfa_devices is not None:
174
347
  pulumi.set(__self__, "allow_user_to_manage_mfa_devices", allow_user_to_manage_mfa_devices)
348
+ if allow_user_to_manage_personal_ding_talk is not None:
349
+ pulumi.set(__self__, "allow_user_to_manage_personal_ding_talk", allow_user_to_manage_personal_ding_talk)
175
350
  if enable_save_mfa_ticket is not None:
176
351
  pulumi.set(__self__, "enable_save_mfa_ticket", enable_save_mfa_ticket)
177
352
  if enforce_mfa_for_login is not None:
@@ -180,12 +355,20 @@ class _SecurityPreferenceState:
180
355
  pulumi.set(__self__, "login_network_masks", login_network_masks)
181
356
  if login_session_duration is not None:
182
357
  pulumi.set(__self__, "login_session_duration", login_session_duration)
358
+ if mfa_operation_for_login is not None:
359
+ pulumi.set(__self__, "mfa_operation_for_login", mfa_operation_for_login)
360
+ if operation_for_risk_login is not None:
361
+ pulumi.set(__self__, "operation_for_risk_login", operation_for_risk_login)
362
+ if verification_types is not None:
363
+ pulumi.set(__self__, "verification_types", verification_types)
183
364
 
184
365
  @property
185
366
  @pulumi.getter(name="allowUserToChangePassword")
186
367
  def allow_user_to_change_password(self) -> Optional[pulumi.Input[builtins.bool]]:
187
368
  """
188
- Specifies whether RAM users can change their passwords. Valid values: `true` and `false`
369
+ Whether to allow RAM users to manage their own passwords. Value:
370
+ - true (default): Allowed.
371
+ - false: not allowed.
189
372
  """
190
373
  return pulumi.get(self, "allow_user_to_change_password")
191
374
 
@@ -193,11 +376,27 @@ class _SecurityPreferenceState:
193
376
  def allow_user_to_change_password(self, value: Optional[pulumi.Input[builtins.bool]]):
194
377
  pulumi.set(self, "allow_user_to_change_password", value)
195
378
 
379
+ @property
380
+ @pulumi.getter(name="allowUserToLoginWithPasskey")
381
+ def allow_user_to_login_with_passkey(self) -> Optional[pulumi.Input[builtins.bool]]:
382
+ """
383
+ Whether to allow RAM users to log on using a passkey. Value:
384
+ - true (default): Allowed.
385
+ - false: not allowed.
386
+ """
387
+ return pulumi.get(self, "allow_user_to_login_with_passkey")
388
+
389
+ @allow_user_to_login_with_passkey.setter
390
+ def allow_user_to_login_with_passkey(self, value: Optional[pulumi.Input[builtins.bool]]):
391
+ pulumi.set(self, "allow_user_to_login_with_passkey", value)
392
+
196
393
  @property
197
394
  @pulumi.getter(name="allowUserToManageAccessKeys")
198
395
  def allow_user_to_manage_access_keys(self) -> Optional[pulumi.Input[builtins.bool]]:
199
396
  """
200
- Specifies whether RAM users can manage their AccessKey pairs. Valid values: `true` and `false`
397
+ Whether to allow RAM users to manage their own access keys. Value:
398
+ - true: Allow.
399
+ - false (default): Not allowed.
201
400
  """
202
401
  return pulumi.get(self, "allow_user_to_manage_access_keys")
203
402
 
@@ -209,7 +408,9 @@ class _SecurityPreferenceState:
209
408
  @pulumi.getter(name="allowUserToManageMfaDevices")
210
409
  def allow_user_to_manage_mfa_devices(self) -> Optional[pulumi.Input[builtins.bool]]:
211
410
  """
212
- Specifies whether RAM users can manage their MFA devices. Valid values: `true` and `false`
411
+ Whether to allow RAM users to manage multi-factor authentication devices. Value:
412
+ - true (default): Allowed.
413
+ - false: not allowed.
213
414
  """
214
415
  return pulumi.get(self, "allow_user_to_manage_mfa_devices")
215
416
 
@@ -217,11 +418,27 @@ class _SecurityPreferenceState:
217
418
  def allow_user_to_manage_mfa_devices(self, value: Optional[pulumi.Input[builtins.bool]]):
218
419
  pulumi.set(self, "allow_user_to_manage_mfa_devices", value)
219
420
 
421
+ @property
422
+ @pulumi.getter(name="allowUserToManagePersonalDingTalk")
423
+ def allow_user_to_manage_personal_ding_talk(self) -> Optional[pulumi.Input[builtins.bool]]:
424
+ """
425
+ Whether to allow RAM users to independently manage the binding and unbinding of personal DingTalk. Value:
426
+ - true (default): Allowed.
427
+ - false: not allowed.
428
+ """
429
+ return pulumi.get(self, "allow_user_to_manage_personal_ding_talk")
430
+
431
+ @allow_user_to_manage_personal_ding_talk.setter
432
+ def allow_user_to_manage_personal_ding_talk(self, value: Optional[pulumi.Input[builtins.bool]]):
433
+ pulumi.set(self, "allow_user_to_manage_personal_ding_talk", value)
434
+
220
435
  @property
221
436
  @pulumi.getter(name="enableSaveMfaTicket")
222
437
  def enable_save_mfa_ticket(self) -> Optional[pulumi.Input[builtins.bool]]:
223
438
  """
224
- Specifies whether to remember the MFA devices for seven days. Valid values: `true` and `false`
439
+ Whether to save the verification status of a RAM user after logging in using multi-factor authentication. The validity period is 7 days. Value:
440
+ - true: Allow.
441
+ - false (default): Not allowed.
225
442
  """
226
443
  return pulumi.get(self, "enable_save_mfa_ticket")
227
444
 
@@ -233,6 +450,7 @@ class _SecurityPreferenceState:
233
450
  @pulumi.getter(name="enforceMfaForLogin")
234
451
  def enforce_mfa_for_login(self) -> Optional[pulumi.Input[builtins.bool]]:
235
452
  """
453
+ Field `enforce_mfa_for_login` has been deprecated from provider version 1.248.0. New field `mfa_operation_for_login` instead.
236
454
  Specifies whether MFA is required for all RAM users when they log on to the Alibaba Cloud Management Console by using usernames and passwords. Valid values: `true` and `false`
237
455
  """
238
456
  return pulumi.get(self, "enforce_mfa_for_login")
@@ -245,10 +463,13 @@ class _SecurityPreferenceState:
245
463
  @pulumi.getter(name="loginNetworkMasks")
246
464
  def login_network_masks(self) -> Optional[pulumi.Input[builtins.str]]:
247
465
  """
248
- The subnet mask that specifies the IP addresses from which you can log on to the Alibaba Cloud Management Console. This parameter takes effect on password-based logon and single sign-on (SSO). However, this parameter does not take effect on API calls that are authenticated by using AccessKey pairs.**NOTE:** You can specify up to 25 subnet masks. The total length of the subnet masks can be a maximum of 512 characters.
249
- * If you specify a subnet mask, RAM users can use only the IP addresses in the subnet mask to log on to the Alibaba Cloud Management Console.
250
- * If you do not specify a subnet mask, RAM users can use all IP addresses to log on to the Alibaba Cloud Management Console.
251
- * If you need to specify multiple subnet masks, separate the subnet masks with semicolons (;). Example: 192.168.0.0/16;10.0.0.0/8.
466
+ The login mask. The logon mask determines which IP addresses are affected by the logon console, including password logon and single sign-on (SSO), but API calls made using the access key are not affected.
467
+ - If the mask is specified, RAM users can only log on from the specified IP address.
468
+ - If you do not specify any mask, the login console function will apply to the entire network.
469
+
470
+ When you need to configure multiple login masks, use a semicolon (;) to separate them, for example: 192.168.0.0/16;10.0.0.0/8.
471
+
472
+ Configure a maximum of 40 logon masks, with a total length of 512 characters.
252
473
  """
253
474
  return pulumi.get(self, "login_network_masks")
254
475
 
@@ -260,7 +481,9 @@ class _SecurityPreferenceState:
260
481
  @pulumi.getter(name="loginSessionDuration")
261
482
  def login_session_duration(self) -> Optional[pulumi.Input[builtins.int]]:
262
483
  """
263
- The validity period of the logon session of RAM users. Valid values: 6 to 24. Unit: hours. Default value: 6.
484
+ The validity period of the logon session of RAM users.
485
+ Valid values: 1 to 24. Unit: hours.
486
+ Default value: 6.
264
487
  """
265
488
  return pulumi.get(self, "login_session_duration")
266
489
 
@@ -268,6 +491,51 @@ class _SecurityPreferenceState:
268
491
  def login_session_duration(self, value: Optional[pulumi.Input[builtins.int]]):
269
492
  pulumi.set(self, "login_session_duration", value)
270
493
 
494
+ @property
495
+ @pulumi.getter(name="mfaOperationForLogin")
496
+ def mfa_operation_for_login(self) -> Optional[pulumi.Input[builtins.str]]:
497
+ """
498
+ MFA must be used during logon (replace the original EnforceMFAForLogin parameter, the original parameter is still valid, we recommend that you update it to a new parameter). Value:
499
+ - mandatory: mandatory for all RAM users. The original value of EnforceMFAForLogin is true.
500
+ - independent (default): depends on the independent configuration of each RAM user. The original value of EnforceMFAForLogin is false.
501
+ - adaptive: Used only during abnormal login.
502
+ """
503
+ return pulumi.get(self, "mfa_operation_for_login")
504
+
505
+ @mfa_operation_for_login.setter
506
+ def mfa_operation_for_login(self, value: Optional[pulumi.Input[builtins.str]]):
507
+ pulumi.set(self, "mfa_operation_for_login", value)
508
+
509
+ @property
510
+ @pulumi.getter(name="operationForRiskLogin")
511
+ def operation_for_risk_login(self) -> Optional[pulumi.Input[builtins.str]]:
512
+ """
513
+ Whether MFA is verified twice during abnormal logon. Value:
514
+ - autonomous (default): Skip, do not force binding.
515
+ - enforceVerify: Force binding validation.
516
+ """
517
+ return pulumi.get(self, "operation_for_risk_login")
518
+
519
+ @operation_for_risk_login.setter
520
+ def operation_for_risk_login(self, value: Optional[pulumi.Input[builtins.str]]):
521
+ pulumi.set(self, "operation_for_risk_login", value)
522
+
523
+ @property
524
+ @pulumi.getter(name="verificationTypes")
525
+ def verification_types(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]:
526
+ """
527
+ Means of multi-factor authentication. Value:
528
+ - sms: secure phone.
529
+ - email: Secure mailbox.
530
+
531
+ The following arguments will be discarded. Please use new fields as soon as possible:
532
+ """
533
+ return pulumi.get(self, "verification_types")
534
+
535
+ @verification_types.setter
536
+ def verification_types(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]):
537
+ pulumi.set(self, "verification_types", value)
538
+
271
539
 
272
540
  class SecurityPreference(pulumi.CustomResource):
273
541
 
@@ -278,53 +546,71 @@ class SecurityPreference(pulumi.CustomResource):
278
546
  resource_name: str,
279
547
  opts: Optional[pulumi.ResourceOptions] = None,
280
548
  allow_user_to_change_password: Optional[pulumi.Input[builtins.bool]] = None,
549
+ allow_user_to_login_with_passkey: Optional[pulumi.Input[builtins.bool]] = None,
281
550
  allow_user_to_manage_access_keys: Optional[pulumi.Input[builtins.bool]] = None,
282
551
  allow_user_to_manage_mfa_devices: Optional[pulumi.Input[builtins.bool]] = None,
552
+ allow_user_to_manage_personal_ding_talk: Optional[pulumi.Input[builtins.bool]] = None,
283
553
  enable_save_mfa_ticket: Optional[pulumi.Input[builtins.bool]] = None,
284
554
  enforce_mfa_for_login: Optional[pulumi.Input[builtins.bool]] = None,
285
555
  login_network_masks: Optional[pulumi.Input[builtins.str]] = None,
286
556
  login_session_duration: Optional[pulumi.Input[builtins.int]] = None,
557
+ mfa_operation_for_login: Optional[pulumi.Input[builtins.str]] = None,
558
+ operation_for_risk_login: Optional[pulumi.Input[builtins.str]] = None,
559
+ verification_types: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
287
560
  __props__=None):
288
561
  """
289
- Provides a RAM Security Preference resource.
290
-
291
- For information about RAM Security Preference and how to use it, see [What is Security Preference](https://www.alibabacloud.com/help/en/doc-detail/186694.htm).
292
-
293
- > **NOTE:** Available since v1.152.0.
294
-
295
- ## Example Usage
296
-
297
- Basic Usage
298
-
299
- ```python
300
- import pulumi
301
- import pulumi_alicloud as alicloud
302
-
303
- example = alicloud.ram.SecurityPreference("example",
304
- enable_save_mfa_ticket=False,
305
- allow_user_to_change_password=True)
306
- ```
307
-
308
562
  ## Import
309
563
 
310
564
  RAM Security Preference can be imported using the id, e.g.
311
565
 
312
566
  ```sh
313
- $ pulumi import alicloud:ram/securityPreference:SecurityPreference example <id>
567
+ $ pulumi import alicloud:ram/securityPreference:SecurityPreference example
314
568
  ```
315
569
 
316
570
  :param str resource_name: The name of the resource.
317
571
  :param pulumi.ResourceOptions opts: Options for the resource.
318
- :param pulumi.Input[builtins.bool] allow_user_to_change_password: Specifies whether RAM users can change their passwords. Valid values: `true` and `false`
319
- :param pulumi.Input[builtins.bool] allow_user_to_manage_access_keys: Specifies whether RAM users can manage their AccessKey pairs. Valid values: `true` and `false`
320
- :param pulumi.Input[builtins.bool] allow_user_to_manage_mfa_devices: Specifies whether RAM users can manage their MFA devices. Valid values: `true` and `false`
321
- :param pulumi.Input[builtins.bool] enable_save_mfa_ticket: Specifies whether to remember the MFA devices for seven days. Valid values: `true` and `false`
322
- :param pulumi.Input[builtins.bool] enforce_mfa_for_login: Specifies whether MFA is required for all RAM users when they log on to the Alibaba Cloud Management Console by using usernames and passwords. Valid values: `true` and `false`
323
- :param pulumi.Input[builtins.str] login_network_masks: The subnet mask that specifies the IP addresses from which you can log on to the Alibaba Cloud Management Console. This parameter takes effect on password-based logon and single sign-on (SSO). However, this parameter does not take effect on API calls that are authenticated by using AccessKey pairs.**NOTE:** You can specify up to 25 subnet masks. The total length of the subnet masks can be a maximum of 512 characters.
324
- * If you specify a subnet mask, RAM users can use only the IP addresses in the subnet mask to log on to the Alibaba Cloud Management Console.
325
- * If you do not specify a subnet mask, RAM users can use all IP addresses to log on to the Alibaba Cloud Management Console.
326
- * If you need to specify multiple subnet masks, separate the subnet masks with semicolons (;). Example: 192.168.0.0/16;10.0.0.0/8.
327
- :param pulumi.Input[builtins.int] login_session_duration: The validity period of the logon session of RAM users. Valid values: 6 to 24. Unit: hours. Default value: 6.
572
+ :param pulumi.Input[builtins.bool] allow_user_to_change_password: Whether to allow RAM users to manage their own passwords. Value:
573
+ - true (default): Allowed.
574
+ - false: not allowed.
575
+ :param pulumi.Input[builtins.bool] allow_user_to_login_with_passkey: Whether to allow RAM users to log on using a passkey. Value:
576
+ - true (default): Allowed.
577
+ - false: not allowed.
578
+ :param pulumi.Input[builtins.bool] allow_user_to_manage_access_keys: Whether to allow RAM users to manage their own access keys. Value:
579
+ - true: Allow.
580
+ - false (default): Not allowed.
581
+ :param pulumi.Input[builtins.bool] allow_user_to_manage_mfa_devices: Whether to allow RAM users to manage multi-factor authentication devices. Value:
582
+ - true (default): Allowed.
583
+ - false: not allowed.
584
+ :param pulumi.Input[builtins.bool] allow_user_to_manage_personal_ding_talk: Whether to allow RAM users to independently manage the binding and unbinding of personal DingTalk. Value:
585
+ - true (default): Allowed.
586
+ - false: not allowed.
587
+ :param pulumi.Input[builtins.bool] enable_save_mfa_ticket: Whether to save the verification status of a RAM user after logging in using multi-factor authentication. The validity period is 7 days. Value:
588
+ - true: Allow.
589
+ - false (default): Not allowed.
590
+ :param pulumi.Input[builtins.bool] enforce_mfa_for_login: Field `enforce_mfa_for_login` has been deprecated from provider version 1.248.0. New field `mfa_operation_for_login` instead.
591
+ Specifies whether MFA is required for all RAM users when they log on to the Alibaba Cloud Management Console by using usernames and passwords. Valid values: `true` and `false`
592
+ :param pulumi.Input[builtins.str] login_network_masks: The login mask. The logon mask determines which IP addresses are affected by the logon console, including password logon and single sign-on (SSO), but API calls made using the access key are not affected.
593
+ - If the mask is specified, RAM users can only log on from the specified IP address.
594
+ - If you do not specify any mask, the login console function will apply to the entire network.
595
+
596
+ When you need to configure multiple login masks, use a semicolon (;) to separate them, for example: 192.168.0.0/16;10.0.0.0/8.
597
+
598
+ Configure a maximum of 40 logon masks, with a total length of 512 characters.
599
+ :param pulumi.Input[builtins.int] login_session_duration: The validity period of the logon session of RAM users.
600
+ Valid values: 1 to 24. Unit: hours.
601
+ Default value: 6.
602
+ :param pulumi.Input[builtins.str] mfa_operation_for_login: MFA must be used during logon (replace the original EnforceMFAForLogin parameter, the original parameter is still valid, we recommend that you update it to a new parameter). Value:
603
+ - mandatory: mandatory for all RAM users. The original value of EnforceMFAForLogin is true.
604
+ - independent (default): depends on the independent configuration of each RAM user. The original value of EnforceMFAForLogin is false.
605
+ - adaptive: Used only during abnormal login.
606
+ :param pulumi.Input[builtins.str] operation_for_risk_login: Whether MFA is verified twice during abnormal logon. Value:
607
+ - autonomous (default): Skip, do not force binding.
608
+ - enforceVerify: Force binding validation.
609
+ :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] verification_types: Means of multi-factor authentication. Value:
610
+ - sms: secure phone.
611
+ - email: Secure mailbox.
612
+
613
+ The following arguments will be discarded. Please use new fields as soon as possible:
328
614
  """
329
615
  ...
330
616
  @overload
@@ -333,31 +619,12 @@ class SecurityPreference(pulumi.CustomResource):
333
619
  args: Optional[SecurityPreferenceArgs] = None,
334
620
  opts: Optional[pulumi.ResourceOptions] = None):
335
621
  """
336
- Provides a RAM Security Preference resource.
337
-
338
- For information about RAM Security Preference and how to use it, see [What is Security Preference](https://www.alibabacloud.com/help/en/doc-detail/186694.htm).
339
-
340
- > **NOTE:** Available since v1.152.0.
341
-
342
- ## Example Usage
343
-
344
- Basic Usage
345
-
346
- ```python
347
- import pulumi
348
- import pulumi_alicloud as alicloud
349
-
350
- example = alicloud.ram.SecurityPreference("example",
351
- enable_save_mfa_ticket=False,
352
- allow_user_to_change_password=True)
353
- ```
354
-
355
622
  ## Import
356
623
 
357
624
  RAM Security Preference can be imported using the id, e.g.
358
625
 
359
626
  ```sh
360
- $ pulumi import alicloud:ram/securityPreference:SecurityPreference example <id>
627
+ $ pulumi import alicloud:ram/securityPreference:SecurityPreference example
361
628
  ```
362
629
 
363
630
  :param str resource_name: The name of the resource.
@@ -376,12 +643,17 @@ class SecurityPreference(pulumi.CustomResource):
376
643
  resource_name: str,
377
644
  opts: Optional[pulumi.ResourceOptions] = None,
378
645
  allow_user_to_change_password: Optional[pulumi.Input[builtins.bool]] = None,
646
+ allow_user_to_login_with_passkey: Optional[pulumi.Input[builtins.bool]] = None,
379
647
  allow_user_to_manage_access_keys: Optional[pulumi.Input[builtins.bool]] = None,
380
648
  allow_user_to_manage_mfa_devices: Optional[pulumi.Input[builtins.bool]] = None,
649
+ allow_user_to_manage_personal_ding_talk: Optional[pulumi.Input[builtins.bool]] = None,
381
650
  enable_save_mfa_ticket: Optional[pulumi.Input[builtins.bool]] = None,
382
651
  enforce_mfa_for_login: Optional[pulumi.Input[builtins.bool]] = None,
383
652
  login_network_masks: Optional[pulumi.Input[builtins.str]] = None,
384
653
  login_session_duration: Optional[pulumi.Input[builtins.int]] = None,
654
+ mfa_operation_for_login: Optional[pulumi.Input[builtins.str]] = None,
655
+ operation_for_risk_login: Optional[pulumi.Input[builtins.str]] = None,
656
+ verification_types: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
385
657
  __props__=None):
386
658
  opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
387
659
  if not isinstance(opts, pulumi.ResourceOptions):
@@ -392,12 +664,17 @@ class SecurityPreference(pulumi.CustomResource):
392
664
  __props__ = SecurityPreferenceArgs.__new__(SecurityPreferenceArgs)
393
665
 
394
666
  __props__.__dict__["allow_user_to_change_password"] = allow_user_to_change_password
667
+ __props__.__dict__["allow_user_to_login_with_passkey"] = allow_user_to_login_with_passkey
395
668
  __props__.__dict__["allow_user_to_manage_access_keys"] = allow_user_to_manage_access_keys
396
669
  __props__.__dict__["allow_user_to_manage_mfa_devices"] = allow_user_to_manage_mfa_devices
670
+ __props__.__dict__["allow_user_to_manage_personal_ding_talk"] = allow_user_to_manage_personal_ding_talk
397
671
  __props__.__dict__["enable_save_mfa_ticket"] = enable_save_mfa_ticket
398
672
  __props__.__dict__["enforce_mfa_for_login"] = enforce_mfa_for_login
399
673
  __props__.__dict__["login_network_masks"] = login_network_masks
400
674
  __props__.__dict__["login_session_duration"] = login_session_duration
675
+ __props__.__dict__["mfa_operation_for_login"] = mfa_operation_for_login
676
+ __props__.__dict__["operation_for_risk_login"] = operation_for_risk_login
677
+ __props__.__dict__["verification_types"] = verification_types
401
678
  super(SecurityPreference, __self__).__init__(
402
679
  'alicloud:ram/securityPreference:SecurityPreference',
403
680
  resource_name,
@@ -409,12 +686,17 @@ class SecurityPreference(pulumi.CustomResource):
409
686
  id: pulumi.Input[str],
410
687
  opts: Optional[pulumi.ResourceOptions] = None,
411
688
  allow_user_to_change_password: Optional[pulumi.Input[builtins.bool]] = None,
689
+ allow_user_to_login_with_passkey: Optional[pulumi.Input[builtins.bool]] = None,
412
690
  allow_user_to_manage_access_keys: Optional[pulumi.Input[builtins.bool]] = None,
413
691
  allow_user_to_manage_mfa_devices: Optional[pulumi.Input[builtins.bool]] = None,
692
+ allow_user_to_manage_personal_ding_talk: Optional[pulumi.Input[builtins.bool]] = None,
414
693
  enable_save_mfa_ticket: Optional[pulumi.Input[builtins.bool]] = None,
415
694
  enforce_mfa_for_login: Optional[pulumi.Input[builtins.bool]] = None,
416
695
  login_network_masks: Optional[pulumi.Input[builtins.str]] = None,
417
- login_session_duration: Optional[pulumi.Input[builtins.int]] = None) -> 'SecurityPreference':
696
+ login_session_duration: Optional[pulumi.Input[builtins.int]] = None,
697
+ mfa_operation_for_login: Optional[pulumi.Input[builtins.str]] = None,
698
+ operation_for_risk_login: Optional[pulumi.Input[builtins.str]] = None,
699
+ verification_types: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None) -> 'SecurityPreference':
418
700
  """
419
701
  Get an existing SecurityPreference resource's state with the given name, id, and optional extra
420
702
  properties used to qualify the lookup.
@@ -422,43 +704,94 @@ class SecurityPreference(pulumi.CustomResource):
422
704
  :param str resource_name: The unique name of the resulting resource.
423
705
  :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
424
706
  :param pulumi.ResourceOptions opts: Options for the resource.
425
- :param pulumi.Input[builtins.bool] allow_user_to_change_password: Specifies whether RAM users can change their passwords. Valid values: `true` and `false`
426
- :param pulumi.Input[builtins.bool] allow_user_to_manage_access_keys: Specifies whether RAM users can manage their AccessKey pairs. Valid values: `true` and `false`
427
- :param pulumi.Input[builtins.bool] allow_user_to_manage_mfa_devices: Specifies whether RAM users can manage their MFA devices. Valid values: `true` and `false`
428
- :param pulumi.Input[builtins.bool] enable_save_mfa_ticket: Specifies whether to remember the MFA devices for seven days. Valid values: `true` and `false`
429
- :param pulumi.Input[builtins.bool] enforce_mfa_for_login: Specifies whether MFA is required for all RAM users when they log on to the Alibaba Cloud Management Console by using usernames and passwords. Valid values: `true` and `false`
430
- :param pulumi.Input[builtins.str] login_network_masks: The subnet mask that specifies the IP addresses from which you can log on to the Alibaba Cloud Management Console. This parameter takes effect on password-based logon and single sign-on (SSO). However, this parameter does not take effect on API calls that are authenticated by using AccessKey pairs.**NOTE:** You can specify up to 25 subnet masks. The total length of the subnet masks can be a maximum of 512 characters.
431
- * If you specify a subnet mask, RAM users can use only the IP addresses in the subnet mask to log on to the Alibaba Cloud Management Console.
432
- * If you do not specify a subnet mask, RAM users can use all IP addresses to log on to the Alibaba Cloud Management Console.
433
- * If you need to specify multiple subnet masks, separate the subnet masks with semicolons (;). Example: 192.168.0.0/16;10.0.0.0/8.
434
- :param pulumi.Input[builtins.int] login_session_duration: The validity period of the logon session of RAM users. Valid values: 6 to 24. Unit: hours. Default value: 6.
707
+ :param pulumi.Input[builtins.bool] allow_user_to_change_password: Whether to allow RAM users to manage their own passwords. Value:
708
+ - true (default): Allowed.
709
+ - false: not allowed.
710
+ :param pulumi.Input[builtins.bool] allow_user_to_login_with_passkey: Whether to allow RAM users to log on using a passkey. Value:
711
+ - true (default): Allowed.
712
+ - false: not allowed.
713
+ :param pulumi.Input[builtins.bool] allow_user_to_manage_access_keys: Whether to allow RAM users to manage their own access keys. Value:
714
+ - true: Allow.
715
+ - false (default): Not allowed.
716
+ :param pulumi.Input[builtins.bool] allow_user_to_manage_mfa_devices: Whether to allow RAM users to manage multi-factor authentication devices. Value:
717
+ - true (default): Allowed.
718
+ - false: not allowed.
719
+ :param pulumi.Input[builtins.bool] allow_user_to_manage_personal_ding_talk: Whether to allow RAM users to independently manage the binding and unbinding of personal DingTalk. Value:
720
+ - true (default): Allowed.
721
+ - false: not allowed.
722
+ :param pulumi.Input[builtins.bool] enable_save_mfa_ticket: Whether to save the verification status of a RAM user after logging in using multi-factor authentication. The validity period is 7 days. Value:
723
+ - true: Allow.
724
+ - false (default): Not allowed.
725
+ :param pulumi.Input[builtins.bool] enforce_mfa_for_login: Field `enforce_mfa_for_login` has been deprecated from provider version 1.248.0. New field `mfa_operation_for_login` instead.
726
+ Specifies whether MFA is required for all RAM users when they log on to the Alibaba Cloud Management Console by using usernames and passwords. Valid values: `true` and `false`
727
+ :param pulumi.Input[builtins.str] login_network_masks: The login mask. The logon mask determines which IP addresses are affected by the logon console, including password logon and single sign-on (SSO), but API calls made using the access key are not affected.
728
+ - If the mask is specified, RAM users can only log on from the specified IP address.
729
+ - If you do not specify any mask, the login console function will apply to the entire network.
730
+
731
+ When you need to configure multiple login masks, use a semicolon (;) to separate them, for example: 192.168.0.0/16;10.0.0.0/8.
732
+
733
+ Configure a maximum of 40 logon masks, with a total length of 512 characters.
734
+ :param pulumi.Input[builtins.int] login_session_duration: The validity period of the logon session of RAM users.
735
+ Valid values: 1 to 24. Unit: hours.
736
+ Default value: 6.
737
+ :param pulumi.Input[builtins.str] mfa_operation_for_login: MFA must be used during logon (replace the original EnforceMFAForLogin parameter, the original parameter is still valid, we recommend that you update it to a new parameter). Value:
738
+ - mandatory: mandatory for all RAM users. The original value of EnforceMFAForLogin is true.
739
+ - independent (default): depends on the independent configuration of each RAM user. The original value of EnforceMFAForLogin is false.
740
+ - adaptive: Used only during abnormal login.
741
+ :param pulumi.Input[builtins.str] operation_for_risk_login: Whether MFA is verified twice during abnormal logon. Value:
742
+ - autonomous (default): Skip, do not force binding.
743
+ - enforceVerify: Force binding validation.
744
+ :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] verification_types: Means of multi-factor authentication. Value:
745
+ - sms: secure phone.
746
+ - email: Secure mailbox.
747
+
748
+ The following arguments will be discarded. Please use new fields as soon as possible:
435
749
  """
436
750
  opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
437
751
 
438
752
  __props__ = _SecurityPreferenceState.__new__(_SecurityPreferenceState)
439
753
 
440
754
  __props__.__dict__["allow_user_to_change_password"] = allow_user_to_change_password
755
+ __props__.__dict__["allow_user_to_login_with_passkey"] = allow_user_to_login_with_passkey
441
756
  __props__.__dict__["allow_user_to_manage_access_keys"] = allow_user_to_manage_access_keys
442
757
  __props__.__dict__["allow_user_to_manage_mfa_devices"] = allow_user_to_manage_mfa_devices
758
+ __props__.__dict__["allow_user_to_manage_personal_ding_talk"] = allow_user_to_manage_personal_ding_talk
443
759
  __props__.__dict__["enable_save_mfa_ticket"] = enable_save_mfa_ticket
444
760
  __props__.__dict__["enforce_mfa_for_login"] = enforce_mfa_for_login
445
761
  __props__.__dict__["login_network_masks"] = login_network_masks
446
762
  __props__.__dict__["login_session_duration"] = login_session_duration
763
+ __props__.__dict__["mfa_operation_for_login"] = mfa_operation_for_login
764
+ __props__.__dict__["operation_for_risk_login"] = operation_for_risk_login
765
+ __props__.__dict__["verification_types"] = verification_types
447
766
  return SecurityPreference(resource_name, opts=opts, __props__=__props__)
448
767
 
449
768
  @property
450
769
  @pulumi.getter(name="allowUserToChangePassword")
451
770
  def allow_user_to_change_password(self) -> pulumi.Output[builtins.bool]:
452
771
  """
453
- Specifies whether RAM users can change their passwords. Valid values: `true` and `false`
772
+ Whether to allow RAM users to manage their own passwords. Value:
773
+ - true (default): Allowed.
774
+ - false: not allowed.
454
775
  """
455
776
  return pulumi.get(self, "allow_user_to_change_password")
456
777
 
778
+ @property
779
+ @pulumi.getter(name="allowUserToLoginWithPasskey")
780
+ def allow_user_to_login_with_passkey(self) -> pulumi.Output[builtins.bool]:
781
+ """
782
+ Whether to allow RAM users to log on using a passkey. Value:
783
+ - true (default): Allowed.
784
+ - false: not allowed.
785
+ """
786
+ return pulumi.get(self, "allow_user_to_login_with_passkey")
787
+
457
788
  @property
458
789
  @pulumi.getter(name="allowUserToManageAccessKeys")
459
790
  def allow_user_to_manage_access_keys(self) -> pulumi.Output[builtins.bool]:
460
791
  """
461
- Specifies whether RAM users can manage their AccessKey pairs. Valid values: `true` and `false`
792
+ Whether to allow RAM users to manage their own access keys. Value:
793
+ - true: Allow.
794
+ - false (default): Not allowed.
462
795
  """
463
796
  return pulumi.get(self, "allow_user_to_manage_access_keys")
464
797
 
@@ -466,15 +799,29 @@ class SecurityPreference(pulumi.CustomResource):
466
799
  @pulumi.getter(name="allowUserToManageMfaDevices")
467
800
  def allow_user_to_manage_mfa_devices(self) -> pulumi.Output[builtins.bool]:
468
801
  """
469
- Specifies whether RAM users can manage their MFA devices. Valid values: `true` and `false`
802
+ Whether to allow RAM users to manage multi-factor authentication devices. Value:
803
+ - true (default): Allowed.
804
+ - false: not allowed.
470
805
  """
471
806
  return pulumi.get(self, "allow_user_to_manage_mfa_devices")
472
807
 
808
+ @property
809
+ @pulumi.getter(name="allowUserToManagePersonalDingTalk")
810
+ def allow_user_to_manage_personal_ding_talk(self) -> pulumi.Output[builtins.bool]:
811
+ """
812
+ Whether to allow RAM users to independently manage the binding and unbinding of personal DingTalk. Value:
813
+ - true (default): Allowed.
814
+ - false: not allowed.
815
+ """
816
+ return pulumi.get(self, "allow_user_to_manage_personal_ding_talk")
817
+
473
818
  @property
474
819
  @pulumi.getter(name="enableSaveMfaTicket")
475
820
  def enable_save_mfa_ticket(self) -> pulumi.Output[builtins.bool]:
476
821
  """
477
- Specifies whether to remember the MFA devices for seven days. Valid values: `true` and `false`
822
+ Whether to save the verification status of a RAM user after logging in using multi-factor authentication. The validity period is 7 days. Value:
823
+ - true: Allow.
824
+ - false (default): Not allowed.
478
825
  """
479
826
  return pulumi.get(self, "enable_save_mfa_ticket")
480
827
 
@@ -482,6 +829,7 @@ class SecurityPreference(pulumi.CustomResource):
482
829
  @pulumi.getter(name="enforceMfaForLogin")
483
830
  def enforce_mfa_for_login(self) -> pulumi.Output[builtins.bool]:
484
831
  """
832
+ Field `enforce_mfa_for_login` has been deprecated from provider version 1.248.0. New field `mfa_operation_for_login` instead.
485
833
  Specifies whether MFA is required for all RAM users when they log on to the Alibaba Cloud Management Console by using usernames and passwords. Valid values: `true` and `false`
486
834
  """
487
835
  return pulumi.get(self, "enforce_mfa_for_login")
@@ -490,10 +838,13 @@ class SecurityPreference(pulumi.CustomResource):
490
838
  @pulumi.getter(name="loginNetworkMasks")
491
839
  def login_network_masks(self) -> pulumi.Output[Optional[builtins.str]]:
492
840
  """
493
- The subnet mask that specifies the IP addresses from which you can log on to the Alibaba Cloud Management Console. This parameter takes effect on password-based logon and single sign-on (SSO). However, this parameter does not take effect on API calls that are authenticated by using AccessKey pairs.**NOTE:** You can specify up to 25 subnet masks. The total length of the subnet masks can be a maximum of 512 characters.
494
- * If you specify a subnet mask, RAM users can use only the IP addresses in the subnet mask to log on to the Alibaba Cloud Management Console.
495
- * If you do not specify a subnet mask, RAM users can use all IP addresses to log on to the Alibaba Cloud Management Console.
496
- * If you need to specify multiple subnet masks, separate the subnet masks with semicolons (;). Example: 192.168.0.0/16;10.0.0.0/8.
841
+ The login mask. The logon mask determines which IP addresses are affected by the logon console, including password logon and single sign-on (SSO), but API calls made using the access key are not affected.
842
+ - If the mask is specified, RAM users can only log on from the specified IP address.
843
+ - If you do not specify any mask, the login console function will apply to the entire network.
844
+
845
+ When you need to configure multiple login masks, use a semicolon (;) to separate them, for example: 192.168.0.0/16;10.0.0.0/8.
846
+
847
+ Configure a maximum of 40 logon masks, with a total length of 512 characters.
497
848
  """
498
849
  return pulumi.get(self, "login_network_masks")
499
850
 
@@ -501,7 +852,42 @@ class SecurityPreference(pulumi.CustomResource):
501
852
  @pulumi.getter(name="loginSessionDuration")
502
853
  def login_session_duration(self) -> pulumi.Output[builtins.int]:
503
854
  """
504
- The validity period of the logon session of RAM users. Valid values: 6 to 24. Unit: hours. Default value: 6.
855
+ The validity period of the logon session of RAM users.
856
+ Valid values: 1 to 24. Unit: hours.
857
+ Default value: 6.
505
858
  """
506
859
  return pulumi.get(self, "login_session_duration")
507
860
 
861
+ @property
862
+ @pulumi.getter(name="mfaOperationForLogin")
863
+ def mfa_operation_for_login(self) -> pulumi.Output[builtins.str]:
864
+ """
865
+ MFA must be used during logon (replace the original EnforceMFAForLogin parameter, the original parameter is still valid, we recommend that you update it to a new parameter). Value:
866
+ - mandatory: mandatory for all RAM users. The original value of EnforceMFAForLogin is true.
867
+ - independent (default): depends on the independent configuration of each RAM user. The original value of EnforceMFAForLogin is false.
868
+ - adaptive: Used only during abnormal login.
869
+ """
870
+ return pulumi.get(self, "mfa_operation_for_login")
871
+
872
+ @property
873
+ @pulumi.getter(name="operationForRiskLogin")
874
+ def operation_for_risk_login(self) -> pulumi.Output[builtins.str]:
875
+ """
876
+ Whether MFA is verified twice during abnormal logon. Value:
877
+ - autonomous (default): Skip, do not force binding.
878
+ - enforceVerify: Force binding validation.
879
+ """
880
+ return pulumi.get(self, "operation_for_risk_login")
881
+
882
+ @property
883
+ @pulumi.getter(name="verificationTypes")
884
+ def verification_types(self) -> pulumi.Output[Optional[Sequence[builtins.str]]]:
885
+ """
886
+ Means of multi-factor authentication. Value:
887
+ - sms: secure phone.
888
+ - email: Secure mailbox.
889
+
890
+ The following arguments will be discarded. Please use new fields as soon as possible:
891
+ """
892
+ return pulumi.get(self, "verification_types")
893
+