pulumiverse-scaleway 1.28.0a1747384911__py3-none-any.whl → 1.29.0__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 (49) hide show
  1. pulumiverse_scaleway/__init__.py +0 -1
  2. pulumiverse_scaleway/_inputs.py +106 -0
  3. pulumiverse_scaleway/account/__init__.py +2 -0
  4. pulumiverse_scaleway/account/get_projects.py +235 -0
  5. pulumiverse_scaleway/account/outputs.py +95 -0
  6. pulumiverse_scaleway/baremetal_server.py +20 -1
  7. pulumiverse_scaleway/block/__init__.py +2 -0
  8. pulumiverse_scaleway/block/_inputs.py +73 -0
  9. pulumiverse_scaleway/block/get_snapshot.py +13 -1
  10. pulumiverse_scaleway/block/outputs.py +79 -0
  11. pulumiverse_scaleway/block/snapshot.py +62 -14
  12. pulumiverse_scaleway/block_snapshot.py +62 -14
  13. pulumiverse_scaleway/container.py +2 -2
  14. pulumiverse_scaleway/containers/container.py +2 -2
  15. pulumiverse_scaleway/database_instance.py +20 -1
  16. pulumiverse_scaleway/databases/instance.py +20 -1
  17. pulumiverse_scaleway/domain/get_zone.py +7 -1
  18. pulumiverse_scaleway/elasticmetal/__init__.py +1 -1
  19. pulumiverse_scaleway/elasticmetal/get_partition_schema.py +215 -0
  20. pulumiverse_scaleway/elasticmetal/server.py +20 -1
  21. pulumiverse_scaleway/get_block_snapshot.py +13 -1
  22. pulumiverse_scaleway/get_domain_zone.py +7 -1
  23. pulumiverse_scaleway/get_mongo_db_instance.py +12 -1
  24. pulumiverse_scaleway/iam/user.py +468 -14
  25. pulumiverse_scaleway/iam_user.py +468 -14
  26. pulumiverse_scaleway/instance/private_nic.py +20 -1
  27. pulumiverse_scaleway/instance/server.py +20 -1
  28. pulumiverse_scaleway/instance/snapshot.py +28 -7
  29. pulumiverse_scaleway/instance/volume.py +28 -7
  30. pulumiverse_scaleway/instance_private_nic.py +20 -1
  31. pulumiverse_scaleway/instance_server.py +20 -1
  32. pulumiverse_scaleway/instance_snapshot.py +28 -7
  33. pulumiverse_scaleway/instance_volume.py +28 -7
  34. pulumiverse_scaleway/mongo_db_instance.py +107 -7
  35. pulumiverse_scaleway/mongodb/_inputs.py +54 -0
  36. pulumiverse_scaleway/mongodb/get_instance.py +12 -1
  37. pulumiverse_scaleway/mongodb/instance.py +107 -7
  38. pulumiverse_scaleway/mongodb/outputs.py +62 -0
  39. pulumiverse_scaleway/network/gateway_network.py +20 -1
  40. pulumiverse_scaleway/observability/__init__.py +0 -1
  41. pulumiverse_scaleway/outputs.py +122 -0
  42. pulumiverse_scaleway/pulumi-plugin.json +1 -1
  43. pulumiverse_scaleway/redis/cluster.py +20 -1
  44. pulumiverse_scaleway/redis_cluster.py +20 -1
  45. pulumiverse_scaleway/vpc_gateway_network.py +20 -1
  46. {pulumiverse_scaleway-1.28.0a1747384911.dist-info → pulumiverse_scaleway-1.29.0.dist-info}/METADATA +1 -1
  47. {pulumiverse_scaleway-1.28.0a1747384911.dist-info → pulumiverse_scaleway-1.29.0.dist-info}/RECORD +49 -44
  48. {pulumiverse_scaleway-1.28.0a1747384911.dist-info → pulumiverse_scaleway-1.29.0.dist-info}/WHEEL +1 -1
  49. {pulumiverse_scaleway-1.28.0a1747384911.dist-info → pulumiverse_scaleway-1.29.0.dist-info}/top_level.txt +0 -0
@@ -20,25 +20,59 @@ __all__ = ['UserArgs', 'User']
20
20
  class UserArgs:
21
21
  def __init__(__self__, *,
22
22
  email: pulumi.Input[str],
23
+ first_name: Optional[pulumi.Input[str]] = None,
24
+ last_name: Optional[pulumi.Input[str]] = None,
25
+ locale: Optional[pulumi.Input[str]] = None,
23
26
  organization_id: Optional[pulumi.Input[str]] = None,
24
- tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
27
+ password: Optional[pulumi.Input[str]] = None,
28
+ phone_number: Optional[pulumi.Input[str]] = None,
29
+ send_password_email: Optional[pulumi.Input[bool]] = None,
30
+ send_welcome_email: Optional[pulumi.Input[bool]] = None,
31
+ tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
32
+ username: Optional[pulumi.Input[str]] = None):
25
33
  """
26
34
  The set of arguments for constructing a User resource.
27
- :param pulumi.Input[str] email: The email of the IAM user.
35
+ :param pulumi.Input[str] email: The email of the IAM user. For Guest users, this argument is not editable.
36
+ :param pulumi.Input[str] first_name: The user's first name.
37
+ :param pulumi.Input[str] last_name: The user's last name.
38
+ :param pulumi.Input[str] locale: The user's locale (e.g., en_US).
39
+
40
+ Important: When creating a Guest user, all arguments are ignored, except for `organization_id`, `email` and `tags`.
28
41
  :param pulumi.Input[str] organization_id: `organization_id`) The ID of the organization the user is associated with.
42
+ :param pulumi.Input[str] password: The password for first access.
43
+ :param pulumi.Input[str] phone_number: The user's phone number.
44
+ :param pulumi.Input[bool] send_password_email: Whether or not to send an email containing the password for first access.
45
+ :param pulumi.Input[bool] send_welcome_email: Whether or not to send a welcome email that includes onboarding information.
29
46
  :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: The tags associated with the user.
47
+ :param pulumi.Input[str] username: The username of the IAM user. When it is set, the user is created as a Member. When it is not set, the user is created as a Guest and the username is set as equal to the email.
30
48
  """
31
49
  pulumi.set(__self__, "email", email)
50
+ if first_name is not None:
51
+ pulumi.set(__self__, "first_name", first_name)
52
+ if last_name is not None:
53
+ pulumi.set(__self__, "last_name", last_name)
54
+ if locale is not None:
55
+ pulumi.set(__self__, "locale", locale)
32
56
  if organization_id is not None:
33
57
  pulumi.set(__self__, "organization_id", organization_id)
58
+ if password is not None:
59
+ pulumi.set(__self__, "password", password)
60
+ if phone_number is not None:
61
+ pulumi.set(__self__, "phone_number", phone_number)
62
+ if send_password_email is not None:
63
+ pulumi.set(__self__, "send_password_email", send_password_email)
64
+ if send_welcome_email is not None:
65
+ pulumi.set(__self__, "send_welcome_email", send_welcome_email)
34
66
  if tags is not None:
35
67
  pulumi.set(__self__, "tags", tags)
68
+ if username is not None:
69
+ pulumi.set(__self__, "username", username)
36
70
 
37
71
  @property
38
72
  @pulumi.getter
39
73
  def email(self) -> pulumi.Input[str]:
40
74
  """
41
- The email of the IAM user.
75
+ The email of the IAM user. For Guest users, this argument is not editable.
42
76
  """
43
77
  return pulumi.get(self, "email")
44
78
 
@@ -46,6 +80,44 @@ class UserArgs:
46
80
  def email(self, value: pulumi.Input[str]):
47
81
  pulumi.set(self, "email", value)
48
82
 
83
+ @property
84
+ @pulumi.getter(name="firstName")
85
+ def first_name(self) -> Optional[pulumi.Input[str]]:
86
+ """
87
+ The user's first name.
88
+ """
89
+ return pulumi.get(self, "first_name")
90
+
91
+ @first_name.setter
92
+ def first_name(self, value: Optional[pulumi.Input[str]]):
93
+ pulumi.set(self, "first_name", value)
94
+
95
+ @property
96
+ @pulumi.getter(name="lastName")
97
+ def last_name(self) -> Optional[pulumi.Input[str]]:
98
+ """
99
+ The user's last name.
100
+ """
101
+ return pulumi.get(self, "last_name")
102
+
103
+ @last_name.setter
104
+ def last_name(self, value: Optional[pulumi.Input[str]]):
105
+ pulumi.set(self, "last_name", value)
106
+
107
+ @property
108
+ @pulumi.getter
109
+ def locale(self) -> Optional[pulumi.Input[str]]:
110
+ """
111
+ The user's locale (e.g., en_US).
112
+
113
+ Important: When creating a Guest user, all arguments are ignored, except for `organization_id`, `email` and `tags`.
114
+ """
115
+ return pulumi.get(self, "locale")
116
+
117
+ @locale.setter
118
+ def locale(self, value: Optional[pulumi.Input[str]]):
119
+ pulumi.set(self, "locale", value)
120
+
49
121
  @property
50
122
  @pulumi.getter(name="organizationId")
51
123
  def organization_id(self) -> Optional[pulumi.Input[str]]:
@@ -58,6 +130,54 @@ class UserArgs:
58
130
  def organization_id(self, value: Optional[pulumi.Input[str]]):
59
131
  pulumi.set(self, "organization_id", value)
60
132
 
133
+ @property
134
+ @pulumi.getter
135
+ def password(self) -> Optional[pulumi.Input[str]]:
136
+ """
137
+ The password for first access.
138
+ """
139
+ return pulumi.get(self, "password")
140
+
141
+ @password.setter
142
+ def password(self, value: Optional[pulumi.Input[str]]):
143
+ pulumi.set(self, "password", value)
144
+
145
+ @property
146
+ @pulumi.getter(name="phoneNumber")
147
+ def phone_number(self) -> Optional[pulumi.Input[str]]:
148
+ """
149
+ The user's phone number.
150
+ """
151
+ return pulumi.get(self, "phone_number")
152
+
153
+ @phone_number.setter
154
+ def phone_number(self, value: Optional[pulumi.Input[str]]):
155
+ pulumi.set(self, "phone_number", value)
156
+
157
+ @property
158
+ @pulumi.getter(name="sendPasswordEmail")
159
+ def send_password_email(self) -> Optional[pulumi.Input[bool]]:
160
+ """
161
+ Whether or not to send an email containing the password for first access.
162
+ """
163
+ return pulumi.get(self, "send_password_email")
164
+
165
+ @send_password_email.setter
166
+ def send_password_email(self, value: Optional[pulumi.Input[bool]]):
167
+ pulumi.set(self, "send_password_email", value)
168
+
169
+ @property
170
+ @pulumi.getter(name="sendWelcomeEmail")
171
+ def send_welcome_email(self) -> Optional[pulumi.Input[bool]]:
172
+ """
173
+ Whether or not to send a welcome email that includes onboarding information.
174
+ """
175
+ return pulumi.get(self, "send_welcome_email")
176
+
177
+ @send_welcome_email.setter
178
+ def send_welcome_email(self, value: Optional[pulumi.Input[bool]]):
179
+ pulumi.set(self, "send_welcome_email", value)
180
+
61
181
  @property
62
182
  @pulumi.getter
63
183
  def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
@@ -70,6 +190,18 @@ class UserArgs:
70
190
  def tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
71
191
  pulumi.set(self, "tags", value)
72
192
 
193
+ @property
194
+ @pulumi.getter
195
+ def username(self) -> Optional[pulumi.Input[str]]:
196
+ """
197
+ The username of the IAM user. When it is set, the user is created as a Member. When it is not set, the user is created as a Guest and the username is set as equal to the email.
198
+ """
199
+ return pulumi.get(self, "username")
200
+
201
+ @username.setter
202
+ def username(self, value: Optional[pulumi.Input[str]]):
203
+ pulumi.set(self, "username", value)
204
+
73
205
 
74
206
  @pulumi.input_type
75
207
  class _UserState:
@@ -78,26 +210,46 @@ class _UserState:
78
210
  created_at: Optional[pulumi.Input[str]] = None,
79
211
  deletable: Optional[pulumi.Input[bool]] = None,
80
212
  email: Optional[pulumi.Input[str]] = None,
213
+ first_name: Optional[pulumi.Input[str]] = None,
81
214
  last_login_at: Optional[pulumi.Input[str]] = None,
215
+ last_name: Optional[pulumi.Input[str]] = None,
216
+ locale: Optional[pulumi.Input[str]] = None,
217
+ locked: Optional[pulumi.Input[bool]] = None,
82
218
  mfa: Optional[pulumi.Input[bool]] = None,
83
219
  organization_id: Optional[pulumi.Input[str]] = None,
220
+ password: Optional[pulumi.Input[str]] = None,
221
+ phone_number: Optional[pulumi.Input[str]] = None,
222
+ send_password_email: Optional[pulumi.Input[bool]] = None,
223
+ send_welcome_email: Optional[pulumi.Input[bool]] = None,
84
224
  status: Optional[pulumi.Input[str]] = None,
85
225
  tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
86
226
  type: Optional[pulumi.Input[str]] = None,
87
- updated_at: Optional[pulumi.Input[str]] = None):
227
+ updated_at: Optional[pulumi.Input[str]] = None,
228
+ username: Optional[pulumi.Input[str]] = None):
88
229
  """
89
230
  Input properties used for looking up and filtering User resources.
90
231
  :param pulumi.Input[str] account_root_user_id: The ID of the account root user associated with the user.
91
232
  :param pulumi.Input[str] created_at: The date and time of the creation of the IAM user.
92
233
  :param pulumi.Input[bool] deletable: Whether the IAM user is deletable.
93
- :param pulumi.Input[str] email: The email of the IAM user.
234
+ :param pulumi.Input[str] email: The email of the IAM user. For Guest users, this argument is not editable.
235
+ :param pulumi.Input[str] first_name: The user's first name.
94
236
  :param pulumi.Input[str] last_login_at: The date of the last login.
237
+ :param pulumi.Input[str] last_name: The user's last name.
238
+ :param pulumi.Input[str] locale: The user's locale (e.g., en_US).
239
+
240
+ Important: When creating a Guest user, all arguments are ignored, except for `organization_id`, `email` and `tags`.
241
+ :param pulumi.Input[bool] locked: Whether the user is locked.
95
242
  :param pulumi.Input[bool] mfa: Whether the MFA is enabled.
96
243
  :param pulumi.Input[str] organization_id: `organization_id`) The ID of the organization the user is associated with.
244
+ :param pulumi.Input[str] password: The password for first access.
245
+ :param pulumi.Input[str] phone_number: The user's phone number.
246
+ :param pulumi.Input[bool] send_password_email: Whether or not to send an email containing the password for first access.
247
+ :param pulumi.Input[bool] send_welcome_email: Whether or not to send a welcome email that includes onboarding information.
97
248
  :param pulumi.Input[str] status: The status of user invitation. Check the possible values in the [API doc](https://www.scaleway.com/en/developers/api/iam/#path-users-get-a-given-user).
98
249
  :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: The tags associated with the user.
99
250
  :param pulumi.Input[str] type: The type of user. Check the possible values in the [API doc](https://www.scaleway.com/en/developers/api/iam/#path-users-get-a-given-user).
100
251
  :param pulumi.Input[str] updated_at: The date and time of the last update of the IAM user.
252
+ :param pulumi.Input[str] username: The username of the IAM user. When it is set, the user is created as a Member. When it is not set, the user is created as a Guest and the username is set as equal to the email.
101
253
  """
102
254
  if account_root_user_id is not None:
103
255
  pulumi.set(__self__, "account_root_user_id", account_root_user_id)
@@ -107,12 +259,28 @@ class _UserState:
107
259
  pulumi.set(__self__, "deletable", deletable)
108
260
  if email is not None:
109
261
  pulumi.set(__self__, "email", email)
262
+ if first_name is not None:
263
+ pulumi.set(__self__, "first_name", first_name)
110
264
  if last_login_at is not None:
111
265
  pulumi.set(__self__, "last_login_at", last_login_at)
266
+ if last_name is not None:
267
+ pulumi.set(__self__, "last_name", last_name)
268
+ if locale is not None:
269
+ pulumi.set(__self__, "locale", locale)
270
+ if locked is not None:
271
+ pulumi.set(__self__, "locked", locked)
112
272
  if mfa is not None:
113
273
  pulumi.set(__self__, "mfa", mfa)
114
274
  if organization_id is not None:
115
275
  pulumi.set(__self__, "organization_id", organization_id)
276
+ if password is not None:
277
+ pulumi.set(__self__, "password", password)
278
+ if phone_number is not None:
279
+ pulumi.set(__self__, "phone_number", phone_number)
280
+ if send_password_email is not None:
281
+ pulumi.set(__self__, "send_password_email", send_password_email)
282
+ if send_welcome_email is not None:
283
+ pulumi.set(__self__, "send_welcome_email", send_welcome_email)
116
284
  if status is not None:
117
285
  pulumi.set(__self__, "status", status)
118
286
  if tags is not None:
@@ -121,6 +289,8 @@ class _UserState:
121
289
  pulumi.set(__self__, "type", type)
122
290
  if updated_at is not None:
123
291
  pulumi.set(__self__, "updated_at", updated_at)
292
+ if username is not None:
293
+ pulumi.set(__self__, "username", username)
124
294
 
125
295
  @property
126
296
  @pulumi.getter(name="accountRootUserId")
@@ -162,7 +332,7 @@ class _UserState:
162
332
  @pulumi.getter
163
333
  def email(self) -> Optional[pulumi.Input[str]]:
164
334
  """
165
- The email of the IAM user.
335
+ The email of the IAM user. For Guest users, this argument is not editable.
166
336
  """
167
337
  return pulumi.get(self, "email")
168
338
 
@@ -170,6 +340,18 @@ class _UserState:
170
340
  def email(self, value: Optional[pulumi.Input[str]]):
171
341
  pulumi.set(self, "email", value)
172
342
 
343
+ @property
344
+ @pulumi.getter(name="firstName")
345
+ def first_name(self) -> Optional[pulumi.Input[str]]:
346
+ """
347
+ The user's first name.
348
+ """
349
+ return pulumi.get(self, "first_name")
350
+
351
+ @first_name.setter
352
+ def first_name(self, value: Optional[pulumi.Input[str]]):
353
+ pulumi.set(self, "first_name", value)
354
+
173
355
  @property
174
356
  @pulumi.getter(name="lastLoginAt")
175
357
  def last_login_at(self) -> Optional[pulumi.Input[str]]:
@@ -182,6 +364,44 @@ class _UserState:
182
364
  def last_login_at(self, value: Optional[pulumi.Input[str]]):
183
365
  pulumi.set(self, "last_login_at", value)
184
366
 
367
+ @property
368
+ @pulumi.getter(name="lastName")
369
+ def last_name(self) -> Optional[pulumi.Input[str]]:
370
+ """
371
+ The user's last name.
372
+ """
373
+ return pulumi.get(self, "last_name")
374
+
375
+ @last_name.setter
376
+ def last_name(self, value: Optional[pulumi.Input[str]]):
377
+ pulumi.set(self, "last_name", value)
378
+
379
+ @property
380
+ @pulumi.getter
381
+ def locale(self) -> Optional[pulumi.Input[str]]:
382
+ """
383
+ The user's locale (e.g., en_US).
384
+
385
+ Important: When creating a Guest user, all arguments are ignored, except for `organization_id`, `email` and `tags`.
386
+ """
387
+ return pulumi.get(self, "locale")
388
+
389
+ @locale.setter
390
+ def locale(self, value: Optional[pulumi.Input[str]]):
391
+ pulumi.set(self, "locale", value)
392
+
393
+ @property
394
+ @pulumi.getter
395
+ def locked(self) -> Optional[pulumi.Input[bool]]:
396
+ """
397
+ Whether the user is locked.
398
+ """
399
+ return pulumi.get(self, "locked")
400
+
401
+ @locked.setter
402
+ def locked(self, value: Optional[pulumi.Input[bool]]):
403
+ pulumi.set(self, "locked", value)
404
+
185
405
  @property
186
406
  @pulumi.getter
187
407
  def mfa(self) -> Optional[pulumi.Input[bool]]:
@@ -206,6 +426,54 @@ class _UserState:
206
426
  def organization_id(self, value: Optional[pulumi.Input[str]]):
207
427
  pulumi.set(self, "organization_id", value)
208
428
 
429
+ @property
430
+ @pulumi.getter
431
+ def password(self) -> Optional[pulumi.Input[str]]:
432
+ """
433
+ The password for first access.
434
+ """
435
+ return pulumi.get(self, "password")
436
+
437
+ @password.setter
438
+ def password(self, value: Optional[pulumi.Input[str]]):
439
+ pulumi.set(self, "password", value)
440
+
441
+ @property
442
+ @pulumi.getter(name="phoneNumber")
443
+ def phone_number(self) -> Optional[pulumi.Input[str]]:
444
+ """
445
+ The user's phone number.
446
+ """
447
+ return pulumi.get(self, "phone_number")
448
+
449
+ @phone_number.setter
450
+ def phone_number(self, value: Optional[pulumi.Input[str]]):
451
+ pulumi.set(self, "phone_number", value)
452
+
453
+ @property
454
+ @pulumi.getter(name="sendPasswordEmail")
455
+ def send_password_email(self) -> Optional[pulumi.Input[bool]]:
456
+ """
457
+ Whether or not to send an email containing the password for first access.
458
+ """
459
+ return pulumi.get(self, "send_password_email")
460
+
461
+ @send_password_email.setter
462
+ def send_password_email(self, value: Optional[pulumi.Input[bool]]):
463
+ pulumi.set(self, "send_password_email", value)
464
+
465
+ @property
466
+ @pulumi.getter(name="sendWelcomeEmail")
467
+ def send_welcome_email(self) -> Optional[pulumi.Input[bool]]:
468
+ """
469
+ Whether or not to send a welcome email that includes onboarding information.
470
+ """
471
+ return pulumi.get(self, "send_welcome_email")
472
+
473
+ @send_welcome_email.setter
474
+ def send_welcome_email(self, value: Optional[pulumi.Input[bool]]):
475
+ pulumi.set(self, "send_welcome_email", value)
476
+
209
477
  @property
210
478
  @pulumi.getter
211
479
  def status(self) -> Optional[pulumi.Input[str]]:
@@ -254,6 +522,18 @@ class _UserState:
254
522
  def updated_at(self, value: Optional[pulumi.Input[str]]):
255
523
  pulumi.set(self, "updated_at", value)
256
524
 
525
+ @property
526
+ @pulumi.getter
527
+ def username(self) -> Optional[pulumi.Input[str]]:
528
+ """
529
+ The username of the IAM user. When it is set, the user is created as a Member. When it is not set, the user is created as a Guest and the username is set as equal to the email.
530
+ """
531
+ return pulumi.get(self, "username")
532
+
533
+ @username.setter
534
+ def username(self, value: Optional[pulumi.Input[str]]):
535
+ pulumi.set(self, "username", value)
536
+
257
537
 
258
538
  class User(pulumi.CustomResource):
259
539
  @overload
@@ -261,8 +541,16 @@ class User(pulumi.CustomResource):
261
541
  resource_name: str,
262
542
  opts: Optional[pulumi.ResourceOptions] = None,
263
543
  email: Optional[pulumi.Input[str]] = None,
544
+ first_name: Optional[pulumi.Input[str]] = None,
545
+ last_name: Optional[pulumi.Input[str]] = None,
546
+ locale: Optional[pulumi.Input[str]] = None,
264
547
  organization_id: Optional[pulumi.Input[str]] = None,
548
+ password: Optional[pulumi.Input[str]] = None,
549
+ phone_number: Optional[pulumi.Input[str]] = None,
550
+ send_password_email: Optional[pulumi.Input[bool]] = None,
551
+ send_welcome_email: Optional[pulumi.Input[bool]] = None,
265
552
  tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
553
+ username: Optional[pulumi.Input[str]] = None,
266
554
  __props__=None):
267
555
  """
268
556
  Creates and manages Scaleway IAM Users.
@@ -270,15 +558,33 @@ class User(pulumi.CustomResource):
270
558
 
271
559
  ## Example Usage
272
560
 
273
- ### Basic
561
+ ### Guest user
274
562
 
275
563
  ```python
276
564
  import pulumi
277
565
  import pulumiverse_scaleway as scaleway
278
566
 
279
- basic = scaleway.iam.User("basic", email="test@test.com")
567
+ guest = scaleway.iam.User("guest",
568
+ email="foo@test.com",
569
+ tags=["test-tag"])
280
570
  ```
281
571
 
572
+ ### Member user
573
+
574
+ ```python
575
+ import pulumi
576
+ import pulumiverse_scaleway as scaleway
577
+
578
+ member = scaleway.iam.User("member",
579
+ email="foo@test.com",
580
+ tags=["test-tag"],
581
+ username="foo",
582
+ first_name="Foo",
583
+ last_name="Bar")
584
+ ```
585
+
586
+ When `username` is set, the user is created as a [Member](https://www.scaleway.com/en/docs/iam/concepts/#member). Otherwise, it is created as a [Guest](https://www.scaleway.com/en/docs/iam/concepts/#guest).
587
+
282
588
  ## Import
283
589
 
284
590
  IAM users can be imported using the `{id}`, e.g.
@@ -291,9 +597,19 @@ class User(pulumi.CustomResource):
291
597
 
292
598
  :param str resource_name: The name of the resource.
293
599
  :param pulumi.ResourceOptions opts: Options for the resource.
294
- :param pulumi.Input[str] email: The email of the IAM user.
600
+ :param pulumi.Input[str] email: The email of the IAM user. For Guest users, this argument is not editable.
601
+ :param pulumi.Input[str] first_name: The user's first name.
602
+ :param pulumi.Input[str] last_name: The user's last name.
603
+ :param pulumi.Input[str] locale: The user's locale (e.g., en_US).
604
+
605
+ Important: When creating a Guest user, all arguments are ignored, except for `organization_id`, `email` and `tags`.
295
606
  :param pulumi.Input[str] organization_id: `organization_id`) The ID of the organization the user is associated with.
607
+ :param pulumi.Input[str] password: The password for first access.
608
+ :param pulumi.Input[str] phone_number: The user's phone number.
609
+ :param pulumi.Input[bool] send_password_email: Whether or not to send an email containing the password for first access.
610
+ :param pulumi.Input[bool] send_welcome_email: Whether or not to send a welcome email that includes onboarding information.
296
611
  :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: The tags associated with the user.
612
+ :param pulumi.Input[str] username: The username of the IAM user. When it is set, the user is created as a Member. When it is not set, the user is created as a Guest and the username is set as equal to the email.
297
613
  """
298
614
  ...
299
615
  @overload
@@ -307,15 +623,33 @@ class User(pulumi.CustomResource):
307
623
 
308
624
  ## Example Usage
309
625
 
310
- ### Basic
626
+ ### Guest user
311
627
 
312
628
  ```python
313
629
  import pulumi
314
630
  import pulumiverse_scaleway as scaleway
315
631
 
316
- basic = scaleway.iam.User("basic", email="test@test.com")
632
+ guest = scaleway.iam.User("guest",
633
+ email="foo@test.com",
634
+ tags=["test-tag"])
317
635
  ```
318
636
 
637
+ ### Member user
638
+
639
+ ```python
640
+ import pulumi
641
+ import pulumiverse_scaleway as scaleway
642
+
643
+ member = scaleway.iam.User("member",
644
+ email="foo@test.com",
645
+ tags=["test-tag"],
646
+ username="foo",
647
+ first_name="Foo",
648
+ last_name="Bar")
649
+ ```
650
+
651
+ When `username` is set, the user is created as a [Member](https://www.scaleway.com/en/docs/iam/concepts/#member). Otherwise, it is created as a [Guest](https://www.scaleway.com/en/docs/iam/concepts/#guest).
652
+
319
653
  ## Import
320
654
 
321
655
  IAM users can be imported using the `{id}`, e.g.
@@ -342,8 +676,16 @@ class User(pulumi.CustomResource):
342
676
  resource_name: str,
343
677
  opts: Optional[pulumi.ResourceOptions] = None,
344
678
  email: Optional[pulumi.Input[str]] = None,
679
+ first_name: Optional[pulumi.Input[str]] = None,
680
+ last_name: Optional[pulumi.Input[str]] = None,
681
+ locale: Optional[pulumi.Input[str]] = None,
345
682
  organization_id: Optional[pulumi.Input[str]] = None,
683
+ password: Optional[pulumi.Input[str]] = None,
684
+ phone_number: Optional[pulumi.Input[str]] = None,
685
+ send_password_email: Optional[pulumi.Input[bool]] = None,
686
+ send_welcome_email: Optional[pulumi.Input[bool]] = None,
346
687
  tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
688
+ username: Optional[pulumi.Input[str]] = None,
347
689
  __props__=None):
348
690
  opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
349
691
  if not isinstance(opts, pulumi.ResourceOptions):
@@ -356,12 +698,21 @@ class User(pulumi.CustomResource):
356
698
  if email is None and not opts.urn:
357
699
  raise TypeError("Missing required property 'email'")
358
700
  __props__.__dict__["email"] = email
701
+ __props__.__dict__["first_name"] = first_name
702
+ __props__.__dict__["last_name"] = last_name
703
+ __props__.__dict__["locale"] = locale
359
704
  __props__.__dict__["organization_id"] = organization_id
705
+ __props__.__dict__["password"] = password
706
+ __props__.__dict__["phone_number"] = phone_number
707
+ __props__.__dict__["send_password_email"] = send_password_email
708
+ __props__.__dict__["send_welcome_email"] = send_welcome_email
360
709
  __props__.__dict__["tags"] = tags
710
+ __props__.__dict__["username"] = username
361
711
  __props__.__dict__["account_root_user_id"] = None
362
712
  __props__.__dict__["created_at"] = None
363
713
  __props__.__dict__["deletable"] = None
364
714
  __props__.__dict__["last_login_at"] = None
715
+ __props__.__dict__["locked"] = None
365
716
  __props__.__dict__["mfa"] = None
366
717
  __props__.__dict__["status"] = None
367
718
  __props__.__dict__["type"] = None
@@ -382,13 +733,22 @@ class User(pulumi.CustomResource):
382
733
  created_at: Optional[pulumi.Input[str]] = None,
383
734
  deletable: Optional[pulumi.Input[bool]] = None,
384
735
  email: Optional[pulumi.Input[str]] = None,
736
+ first_name: Optional[pulumi.Input[str]] = None,
385
737
  last_login_at: Optional[pulumi.Input[str]] = None,
738
+ last_name: Optional[pulumi.Input[str]] = None,
739
+ locale: Optional[pulumi.Input[str]] = None,
740
+ locked: Optional[pulumi.Input[bool]] = None,
386
741
  mfa: Optional[pulumi.Input[bool]] = None,
387
742
  organization_id: Optional[pulumi.Input[str]] = None,
743
+ password: Optional[pulumi.Input[str]] = None,
744
+ phone_number: Optional[pulumi.Input[str]] = None,
745
+ send_password_email: Optional[pulumi.Input[bool]] = None,
746
+ send_welcome_email: Optional[pulumi.Input[bool]] = None,
388
747
  status: Optional[pulumi.Input[str]] = None,
389
748
  tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
390
749
  type: Optional[pulumi.Input[str]] = None,
391
- updated_at: Optional[pulumi.Input[str]] = None) -> 'User':
750
+ updated_at: Optional[pulumi.Input[str]] = None,
751
+ username: Optional[pulumi.Input[str]] = None) -> 'User':
392
752
  """
393
753
  Get an existing User resource's state with the given name, id, and optional extra
394
754
  properties used to qualify the lookup.
@@ -399,14 +759,25 @@ class User(pulumi.CustomResource):
399
759
  :param pulumi.Input[str] account_root_user_id: The ID of the account root user associated with the user.
400
760
  :param pulumi.Input[str] created_at: The date and time of the creation of the IAM user.
401
761
  :param pulumi.Input[bool] deletable: Whether the IAM user is deletable.
402
- :param pulumi.Input[str] email: The email of the IAM user.
762
+ :param pulumi.Input[str] email: The email of the IAM user. For Guest users, this argument is not editable.
763
+ :param pulumi.Input[str] first_name: The user's first name.
403
764
  :param pulumi.Input[str] last_login_at: The date of the last login.
765
+ :param pulumi.Input[str] last_name: The user's last name.
766
+ :param pulumi.Input[str] locale: The user's locale (e.g., en_US).
767
+
768
+ Important: When creating a Guest user, all arguments are ignored, except for `organization_id`, `email` and `tags`.
769
+ :param pulumi.Input[bool] locked: Whether the user is locked.
404
770
  :param pulumi.Input[bool] mfa: Whether the MFA is enabled.
405
771
  :param pulumi.Input[str] organization_id: `organization_id`) The ID of the organization the user is associated with.
772
+ :param pulumi.Input[str] password: The password for first access.
773
+ :param pulumi.Input[str] phone_number: The user's phone number.
774
+ :param pulumi.Input[bool] send_password_email: Whether or not to send an email containing the password for first access.
775
+ :param pulumi.Input[bool] send_welcome_email: Whether or not to send a welcome email that includes onboarding information.
406
776
  :param pulumi.Input[str] status: The status of user invitation. Check the possible values in the [API doc](https://www.scaleway.com/en/developers/api/iam/#path-users-get-a-given-user).
407
777
  :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: The tags associated with the user.
408
778
  :param pulumi.Input[str] type: The type of user. Check the possible values in the [API doc](https://www.scaleway.com/en/developers/api/iam/#path-users-get-a-given-user).
409
779
  :param pulumi.Input[str] updated_at: The date and time of the last update of the IAM user.
780
+ :param pulumi.Input[str] username: The username of the IAM user. When it is set, the user is created as a Member. When it is not set, the user is created as a Guest and the username is set as equal to the email.
410
781
  """
411
782
  opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
412
783
 
@@ -416,13 +787,22 @@ class User(pulumi.CustomResource):
416
787
  __props__.__dict__["created_at"] = created_at
417
788
  __props__.__dict__["deletable"] = deletable
418
789
  __props__.__dict__["email"] = email
790
+ __props__.__dict__["first_name"] = first_name
419
791
  __props__.__dict__["last_login_at"] = last_login_at
792
+ __props__.__dict__["last_name"] = last_name
793
+ __props__.__dict__["locale"] = locale
794
+ __props__.__dict__["locked"] = locked
420
795
  __props__.__dict__["mfa"] = mfa
421
796
  __props__.__dict__["organization_id"] = organization_id
797
+ __props__.__dict__["password"] = password
798
+ __props__.__dict__["phone_number"] = phone_number
799
+ __props__.__dict__["send_password_email"] = send_password_email
800
+ __props__.__dict__["send_welcome_email"] = send_welcome_email
422
801
  __props__.__dict__["status"] = status
423
802
  __props__.__dict__["tags"] = tags
424
803
  __props__.__dict__["type"] = type
425
804
  __props__.__dict__["updated_at"] = updated_at
805
+ __props__.__dict__["username"] = username
426
806
  return User(resource_name, opts=opts, __props__=__props__)
427
807
 
428
808
  @property
@@ -453,10 +833,18 @@ class User(pulumi.CustomResource):
453
833
  @pulumi.getter
454
834
  def email(self) -> pulumi.Output[str]:
455
835
  """
456
- The email of the IAM user.
836
+ The email of the IAM user. For Guest users, this argument is not editable.
457
837
  """
458
838
  return pulumi.get(self, "email")
459
839
 
840
+ @property
841
+ @pulumi.getter(name="firstName")
842
+ def first_name(self) -> pulumi.Output[Optional[str]]:
843
+ """
844
+ The user's first name.
845
+ """
846
+ return pulumi.get(self, "first_name")
847
+
460
848
  @property
461
849
  @pulumi.getter(name="lastLoginAt")
462
850
  def last_login_at(self) -> pulumi.Output[str]:
@@ -465,6 +853,32 @@ class User(pulumi.CustomResource):
465
853
  """
466
854
  return pulumi.get(self, "last_login_at")
467
855
 
856
+ @property
857
+ @pulumi.getter(name="lastName")
858
+ def last_name(self) -> pulumi.Output[Optional[str]]:
859
+ """
860
+ The user's last name.
861
+ """
862
+ return pulumi.get(self, "last_name")
863
+
864
+ @property
865
+ @pulumi.getter
866
+ def locale(self) -> pulumi.Output[str]:
867
+ """
868
+ The user's locale (e.g., en_US).
869
+
870
+ Important: When creating a Guest user, all arguments are ignored, except for `organization_id`, `email` and `tags`.
871
+ """
872
+ return pulumi.get(self, "locale")
873
+
874
+ @property
875
+ @pulumi.getter
876
+ def locked(self) -> pulumi.Output[bool]:
877
+ """
878
+ Whether the user is locked.
879
+ """
880
+ return pulumi.get(self, "locked")
881
+
468
882
  @property
469
883
  @pulumi.getter
470
884
  def mfa(self) -> pulumi.Output[bool]:
@@ -481,6 +895,38 @@ class User(pulumi.CustomResource):
481
895
  """
482
896
  return pulumi.get(self, "organization_id")
483
897
 
898
+ @property
899
+ @pulumi.getter
900
+ def password(self) -> pulumi.Output[Optional[str]]:
901
+ """
902
+ The password for first access.
903
+ """
904
+ return pulumi.get(self, "password")
905
+
906
+ @property
907
+ @pulumi.getter(name="phoneNumber")
908
+ def phone_number(self) -> pulumi.Output[Optional[str]]:
909
+ """
910
+ The user's phone number.
911
+ """
912
+ return pulumi.get(self, "phone_number")
913
+
914
+ @property
915
+ @pulumi.getter(name="sendPasswordEmail")
916
+ def send_password_email(self) -> pulumi.Output[Optional[bool]]:
917
+ """
918
+ Whether or not to send an email containing the password for first access.
919
+ """
920
+ return pulumi.get(self, "send_password_email")
921
+
922
+ @property
923
+ @pulumi.getter(name="sendWelcomeEmail")
924
+ def send_welcome_email(self) -> pulumi.Output[Optional[bool]]:
925
+ """
926
+ Whether or not to send a welcome email that includes onboarding information.
927
+ """
928
+ return pulumi.get(self, "send_welcome_email")
929
+
484
930
  @property
485
931
  @pulumi.getter
486
932
  def status(self) -> pulumi.Output[str]:
@@ -513,3 +959,11 @@ class User(pulumi.CustomResource):
513
959
  """
514
960
  return pulumi.get(self, "updated_at")
515
961
 
962
+ @property
963
+ @pulumi.getter
964
+ def username(self) -> pulumi.Output[str]:
965
+ """
966
+ The username of the IAM user. When it is set, the user is created as a Member. When it is not set, the user is created as a Guest and the username is set as equal to the email.
967
+ """
968
+ return pulumi.get(self, "username")
969
+