pulumiverse-scaleway 1.33.0a1755026511__py3-none-any.whl → 1.34.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 (52) hide show
  1. pulumiverse_scaleway/__init__.py +8 -0
  2. pulumiverse_scaleway/_inputs.py +235 -34
  3. pulumiverse_scaleway/cockpit.py +14 -0
  4. pulumiverse_scaleway/container_namespace.py +16 -7
  5. pulumiverse_scaleway/containers/namespace.py +16 -7
  6. pulumiverse_scaleway/database_user.py +83 -11
  7. pulumiverse_scaleway/databases/user.py +83 -11
  8. pulumiverse_scaleway/elasticmetal/outputs.py +4 -0
  9. pulumiverse_scaleway/function_namespace.py +16 -7
  10. pulumiverse_scaleway/functions/namespace.py +16 -7
  11. pulumiverse_scaleway/get_mongo_db_instance.py +34 -1
  12. pulumiverse_scaleway/hosting/_inputs.py +42 -0
  13. pulumiverse_scaleway/hosting/outputs.py +84 -0
  14. pulumiverse_scaleway/instance/_inputs.py +107 -13
  15. pulumiverse_scaleway/instance/outputs.py +187 -10
  16. pulumiverse_scaleway/instance/security_group_rules.py +16 -16
  17. pulumiverse_scaleway/instance/snapshot.py +26 -27
  18. pulumiverse_scaleway/instance_security_group_rules.py +16 -16
  19. pulumiverse_scaleway/instance_snapshot.py +26 -27
  20. pulumiverse_scaleway/loadbalancer_backend.py +39 -0
  21. pulumiverse_scaleway/loadbalancers/backend.py +39 -0
  22. pulumiverse_scaleway/loadbalancers/outputs.py +16 -0
  23. pulumiverse_scaleway/mnq/_inputs.py +52 -0
  24. pulumiverse_scaleway/mnq/outputs.py +47 -0
  25. pulumiverse_scaleway/mnq/sqs_queue.py +159 -0
  26. pulumiverse_scaleway/mnq_sqs_queue.py +159 -0
  27. pulumiverse_scaleway/mongo_db_instance.py +171 -23
  28. pulumiverse_scaleway/mongo_db_snapshot.py +2 -2
  29. pulumiverse_scaleway/mongodb/__init__.py +1 -0
  30. pulumiverse_scaleway/mongodb/_inputs.py +73 -0
  31. pulumiverse_scaleway/mongodb/get_instance.py +34 -1
  32. pulumiverse_scaleway/mongodb/instance.py +171 -23
  33. pulumiverse_scaleway/mongodb/outputs.py +62 -0
  34. pulumiverse_scaleway/mongodb/snapshot.py +2 -2
  35. pulumiverse_scaleway/mongodb/user.py +508 -0
  36. pulumiverse_scaleway/network/outputs.py +4 -0
  37. pulumiverse_scaleway/object/_inputs.py +14 -0
  38. pulumiverse_scaleway/object/bucket.py +13 -0
  39. pulumiverse_scaleway/object/outputs.py +30 -0
  40. pulumiverse_scaleway/object_bucket.py +13 -0
  41. pulumiverse_scaleway/observability/__init__.py +1 -0
  42. pulumiverse_scaleway/observability/cockpit.py +14 -0
  43. pulumiverse_scaleway/observability/get_sources.py +376 -0
  44. pulumiverse_scaleway/observability/outputs.py +140 -0
  45. pulumiverse_scaleway/outputs.py +387 -26
  46. pulumiverse_scaleway/pulumi-plugin.json +1 -1
  47. pulumiverse_scaleway/secret.py +8 -0
  48. pulumiverse_scaleway/secrets/secret.py +8 -0
  49. {pulumiverse_scaleway-1.33.0a1755026511.dist-info → pulumiverse_scaleway-1.34.0.dist-info}/METADATA +1 -1
  50. {pulumiverse_scaleway-1.33.0a1755026511.dist-info → pulumiverse_scaleway-1.34.0.dist-info}/RECORD +52 -50
  51. {pulumiverse_scaleway-1.33.0a1755026511.dist-info → pulumiverse_scaleway-1.34.0.dist-info}/WHEEL +0 -0
  52. {pulumiverse_scaleway-1.33.0a1755026511.dist-info → pulumiverse_scaleway-1.34.0.dist-info}/top_level.txt +0 -0
@@ -19,6 +19,7 @@ __all__ = [
19
19
  'InstancePrivateIp',
20
20
  'InstancePrivateNetwork',
21
21
  'InstancePublicNetwork',
22
+ 'UserRole',
22
23
  'GetInstancePrivateIpResult',
23
24
  'GetInstancePrivateNetworkResult',
24
25
  'GetInstancePublicNetworkResult',
@@ -200,6 +201,67 @@ class InstancePublicNetwork(dict):
200
201
  return pulumi.get(self, "port")
201
202
 
202
203
 
204
+ @pulumi.output_type
205
+ class UserRole(dict):
206
+ @staticmethod
207
+ def __key_warning(key: str):
208
+ suggest = None
209
+ if key == "anyDatabase":
210
+ suggest = "any_database"
211
+ elif key == "databaseName":
212
+ suggest = "database_name"
213
+
214
+ if suggest:
215
+ pulumi.log.warn(f"Key '{key}' not found in UserRole. Access the value via the '{suggest}' property getter instead.")
216
+
217
+ def __getitem__(self, key: str) -> Any:
218
+ UserRole.__key_warning(key)
219
+ return super().__getitem__(key)
220
+
221
+ def get(self, key: str, default = None) -> Any:
222
+ UserRole.__key_warning(key)
223
+ return super().get(key, default)
224
+
225
+ def __init__(__self__, *,
226
+ role: builtins.str,
227
+ any_database: Optional[builtins.bool] = None,
228
+ database_name: Optional[builtins.str] = None):
229
+ """
230
+ :param builtins.str role: The role name. Valid values are `read`, `read_write`, `db_admin`, `sync`.
231
+ :param builtins.bool any_database: Apply the role to all databases. Cannot be used with `database_name`.
232
+ :param builtins.str database_name: The database name for the role. Cannot be used with `any_database`.
233
+ """
234
+ pulumi.set(__self__, "role", role)
235
+ if any_database is not None:
236
+ pulumi.set(__self__, "any_database", any_database)
237
+ if database_name is not None:
238
+ pulumi.set(__self__, "database_name", database_name)
239
+
240
+ @property
241
+ @pulumi.getter
242
+ def role(self) -> builtins.str:
243
+ """
244
+ The role name. Valid values are `read`, `read_write`, `db_admin`, `sync`.
245
+ """
246
+ return pulumi.get(self, "role")
247
+
248
+ @property
249
+ @pulumi.getter(name="anyDatabase")
250
+ def any_database(self) -> Optional[builtins.bool]:
251
+ """
252
+ Apply the role to all databases. Cannot be used with `database_name`.
253
+ """
254
+ return pulumi.get(self, "any_database")
255
+
256
+ @property
257
+ @pulumi.getter(name="databaseName")
258
+ def database_name(self) -> Optional[builtins.str]:
259
+ """
260
+ The database name for the role. Cannot be used with `any_database`.
261
+ """
262
+ return pulumi.get(self, "database_name")
263
+
264
+
203
265
  @pulumi.output_type
204
266
  class GetInstancePrivateIpResult(dict):
205
267
  def __init__(__self__, *,
@@ -297,7 +297,7 @@ class Snapshot(pulumi.CustomResource):
297
297
  bash
298
298
 
299
299
  ```sh
300
- $ pulumi import scaleway:mongodb/snapshot:Snapshot main fr-par-1/11111111-1111-1111-1111-111111111111
300
+ $ pulumi import scaleway:mongodb/snapshot:Snapshot main fr-par/11111111-1111-1111-1111-111111111111
301
301
  ```
302
302
 
303
303
  :param str resource_name: The name of the resource.
@@ -338,7 +338,7 @@ class Snapshot(pulumi.CustomResource):
338
338
  bash
339
339
 
340
340
  ```sh
341
- $ pulumi import scaleway:mongodb/snapshot:Snapshot main fr-par-1/11111111-1111-1111-1111-111111111111
341
+ $ pulumi import scaleway:mongodb/snapshot:Snapshot main fr-par/11111111-1111-1111-1111-111111111111
342
342
  ```
343
343
 
344
344
  :param str resource_name: The name of the resource.
@@ -0,0 +1,508 @@
1
+ # coding=utf-8
2
+ # *** WARNING: this file was generated by pulumi-language-python. ***
3
+ # *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+
5
+ import builtins
6
+ import copy
7
+ import warnings
8
+ import sys
9
+ import pulumi
10
+ import pulumi.runtime
11
+ from typing import Any, Mapping, Optional, Sequence, Union, overload
12
+ if sys.version_info >= (3, 11):
13
+ from typing import NotRequired, TypedDict, TypeAlias
14
+ else:
15
+ from typing_extensions import NotRequired, TypedDict, TypeAlias
16
+ from .. import _utilities
17
+ from . import outputs
18
+ from ._inputs import *
19
+
20
+ __all__ = ['UserArgs', 'User']
21
+
22
+ @pulumi.input_type
23
+ class UserArgs:
24
+ def __init__(__self__, *,
25
+ instance_id: pulumi.Input[builtins.str],
26
+ password: pulumi.Input[builtins.str],
27
+ name: Optional[pulumi.Input[builtins.str]] = None,
28
+ region: Optional[pulumi.Input[builtins.str]] = None,
29
+ roles: Optional[pulumi.Input[Sequence[pulumi.Input['UserRoleArgs']]]] = None):
30
+ """
31
+ The set of arguments for constructing a User resource.
32
+ :param pulumi.Input[builtins.str] instance_id: The ID of the MongoDB® instance.
33
+ :param pulumi.Input[builtins.str] password: The password of the MongoDB® user.
34
+ :param pulumi.Input[builtins.str] name: The name of the MongoDB® user.
35
+ :param pulumi.Input[builtins.str] region: `region`) The region in which the MongoDB® user should be created.
36
+ :param pulumi.Input[Sequence[pulumi.Input['UserRoleArgs']]] roles: List of roles assigned to the user. Each role block supports:
37
+ """
38
+ pulumi.set(__self__, "instance_id", instance_id)
39
+ pulumi.set(__self__, "password", password)
40
+ if name is not None:
41
+ pulumi.set(__self__, "name", name)
42
+ if region is not None:
43
+ pulumi.set(__self__, "region", region)
44
+ if roles is not None:
45
+ pulumi.set(__self__, "roles", roles)
46
+
47
+ @property
48
+ @pulumi.getter(name="instanceId")
49
+ def instance_id(self) -> pulumi.Input[builtins.str]:
50
+ """
51
+ The ID of the MongoDB® instance.
52
+ """
53
+ return pulumi.get(self, "instance_id")
54
+
55
+ @instance_id.setter
56
+ def instance_id(self, value: pulumi.Input[builtins.str]):
57
+ pulumi.set(self, "instance_id", value)
58
+
59
+ @property
60
+ @pulumi.getter
61
+ def password(self) -> pulumi.Input[builtins.str]:
62
+ """
63
+ The password of the MongoDB® user.
64
+ """
65
+ return pulumi.get(self, "password")
66
+
67
+ @password.setter
68
+ def password(self, value: pulumi.Input[builtins.str]):
69
+ pulumi.set(self, "password", value)
70
+
71
+ @property
72
+ @pulumi.getter
73
+ def name(self) -> Optional[pulumi.Input[builtins.str]]:
74
+ """
75
+ The name of the MongoDB® user.
76
+ """
77
+ return pulumi.get(self, "name")
78
+
79
+ @name.setter
80
+ def name(self, value: Optional[pulumi.Input[builtins.str]]):
81
+ pulumi.set(self, "name", value)
82
+
83
+ @property
84
+ @pulumi.getter
85
+ def region(self) -> Optional[pulumi.Input[builtins.str]]:
86
+ """
87
+ `region`) The region in which the MongoDB® user should be created.
88
+ """
89
+ return pulumi.get(self, "region")
90
+
91
+ @region.setter
92
+ def region(self, value: Optional[pulumi.Input[builtins.str]]):
93
+ pulumi.set(self, "region", value)
94
+
95
+ @property
96
+ @pulumi.getter
97
+ def roles(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['UserRoleArgs']]]]:
98
+ """
99
+ List of roles assigned to the user. Each role block supports:
100
+ """
101
+ return pulumi.get(self, "roles")
102
+
103
+ @roles.setter
104
+ def roles(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['UserRoleArgs']]]]):
105
+ pulumi.set(self, "roles", value)
106
+
107
+
108
+ @pulumi.input_type
109
+ class _UserState:
110
+ def __init__(__self__, *,
111
+ instance_id: Optional[pulumi.Input[builtins.str]] = None,
112
+ name: Optional[pulumi.Input[builtins.str]] = None,
113
+ password: Optional[pulumi.Input[builtins.str]] = None,
114
+ region: Optional[pulumi.Input[builtins.str]] = None,
115
+ roles: Optional[pulumi.Input[Sequence[pulumi.Input['UserRoleArgs']]]] = None):
116
+ """
117
+ Input properties used for looking up and filtering User resources.
118
+ :param pulumi.Input[builtins.str] instance_id: The ID of the MongoDB® instance.
119
+ :param pulumi.Input[builtins.str] name: The name of the MongoDB® user.
120
+ :param pulumi.Input[builtins.str] password: The password of the MongoDB® user.
121
+ :param pulumi.Input[builtins.str] region: `region`) The region in which the MongoDB® user should be created.
122
+ :param pulumi.Input[Sequence[pulumi.Input['UserRoleArgs']]] roles: List of roles assigned to the user. Each role block supports:
123
+ """
124
+ if instance_id is not None:
125
+ pulumi.set(__self__, "instance_id", instance_id)
126
+ if name is not None:
127
+ pulumi.set(__self__, "name", name)
128
+ if password is not None:
129
+ pulumi.set(__self__, "password", password)
130
+ if region is not None:
131
+ pulumi.set(__self__, "region", region)
132
+ if roles is not None:
133
+ pulumi.set(__self__, "roles", roles)
134
+
135
+ @property
136
+ @pulumi.getter(name="instanceId")
137
+ def instance_id(self) -> Optional[pulumi.Input[builtins.str]]:
138
+ """
139
+ The ID of the MongoDB® instance.
140
+ """
141
+ return pulumi.get(self, "instance_id")
142
+
143
+ @instance_id.setter
144
+ def instance_id(self, value: Optional[pulumi.Input[builtins.str]]):
145
+ pulumi.set(self, "instance_id", value)
146
+
147
+ @property
148
+ @pulumi.getter
149
+ def name(self) -> Optional[pulumi.Input[builtins.str]]:
150
+ """
151
+ The name of the MongoDB® user.
152
+ """
153
+ return pulumi.get(self, "name")
154
+
155
+ @name.setter
156
+ def name(self, value: Optional[pulumi.Input[builtins.str]]):
157
+ pulumi.set(self, "name", value)
158
+
159
+ @property
160
+ @pulumi.getter
161
+ def password(self) -> Optional[pulumi.Input[builtins.str]]:
162
+ """
163
+ The password of the MongoDB® user.
164
+ """
165
+ return pulumi.get(self, "password")
166
+
167
+ @password.setter
168
+ def password(self, value: Optional[pulumi.Input[builtins.str]]):
169
+ pulumi.set(self, "password", value)
170
+
171
+ @property
172
+ @pulumi.getter
173
+ def region(self) -> Optional[pulumi.Input[builtins.str]]:
174
+ """
175
+ `region`) The region in which the MongoDB® user should be created.
176
+ """
177
+ return pulumi.get(self, "region")
178
+
179
+ @region.setter
180
+ def region(self, value: Optional[pulumi.Input[builtins.str]]):
181
+ pulumi.set(self, "region", value)
182
+
183
+ @property
184
+ @pulumi.getter
185
+ def roles(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['UserRoleArgs']]]]:
186
+ """
187
+ List of roles assigned to the user. Each role block supports:
188
+ """
189
+ return pulumi.get(self, "roles")
190
+
191
+ @roles.setter
192
+ def roles(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['UserRoleArgs']]]]):
193
+ pulumi.set(self, "roles", value)
194
+
195
+
196
+ @pulumi.type_token("scaleway:mongodb/user:User")
197
+ class User(pulumi.CustomResource):
198
+ @overload
199
+ def __init__(__self__,
200
+ resource_name: str,
201
+ opts: Optional[pulumi.ResourceOptions] = None,
202
+ instance_id: Optional[pulumi.Input[builtins.str]] = None,
203
+ name: Optional[pulumi.Input[builtins.str]] = None,
204
+ password: Optional[pulumi.Input[builtins.str]] = None,
205
+ region: Optional[pulumi.Input[builtins.str]] = None,
206
+ roles: Optional[pulumi.Input[Sequence[pulumi.Input[Union['UserRoleArgs', 'UserRoleArgsDict']]]]] = None,
207
+ __props__=None):
208
+ """
209
+ Creates and manages Scaleway MongoDB® users.
210
+ For more information refer to the [product documentation](https://www.scaleway.com/en/docs/managed-mongodb-databases/).
211
+
212
+ ## Example Usage
213
+
214
+ ### Basic
215
+
216
+ ```python
217
+ import pulumi
218
+ import pulumiverse_scaleway as scaleway
219
+
220
+ main = scaleway.mongodb.Instance("main",
221
+ name="test-mongodb-user",
222
+ version="7.0.12",
223
+ node_type="MGDB-PLAY2-NANO",
224
+ node_number=1,
225
+ user_name="initial_user",
226
+ password="initial_password123",
227
+ volume_size_in_gb=5)
228
+ main_user = scaleway.mongodb.User("main",
229
+ instance_id=main.id,
230
+ name="my_user",
231
+ password="my_password123",
232
+ roles=[{
233
+ "role": "read_write",
234
+ "database_name": "my_database",
235
+ }])
236
+ ```
237
+
238
+ ### With Multiple Users
239
+
240
+ ```python
241
+ import pulumi
242
+ import pulumiverse_scaleway as scaleway
243
+
244
+ main = scaleway.mongodb.Instance("main",
245
+ name="test-mongodb-multi-user",
246
+ version="7.0.12",
247
+ node_type="MGDB-PLAY2-NANO",
248
+ node_number=1,
249
+ user_name="admin_user",
250
+ password="admin_password123",
251
+ volume_size_in_gb=5)
252
+ app_user = scaleway.mongodb.User("app_user",
253
+ instance_id=main.id,
254
+ name="app_user",
255
+ password="app_password123",
256
+ roles=[
257
+ {
258
+ "role": "read_write",
259
+ "database_name": "app_database",
260
+ },
261
+ {
262
+ "role": "read",
263
+ "database_name": "logs_database",
264
+ },
265
+ ])
266
+ admin_user = scaleway.mongodb.User("admin_user",
267
+ instance_id=main.id,
268
+ name="admin_user",
269
+ password="admin_password123",
270
+ roles=[
271
+ {
272
+ "role": "db_admin",
273
+ "database_name": "admin",
274
+ },
275
+ {
276
+ "role": "read",
277
+ "any_database": True,
278
+ },
279
+ ])
280
+ ```
281
+
282
+ ## Import
283
+
284
+ MongoDB® users can be imported using the `{region}/{instance_id}/{name}`, e.g.
285
+
286
+ bash
287
+
288
+ ```sh
289
+ $ pulumi import scaleway:mongodb/user:User main fr-par/11111111-1111-1111-1111-111111111111/my_user
290
+ ```
291
+
292
+ :param str resource_name: The name of the resource.
293
+ :param pulumi.ResourceOptions opts: Options for the resource.
294
+ :param pulumi.Input[builtins.str] instance_id: The ID of the MongoDB® instance.
295
+ :param pulumi.Input[builtins.str] name: The name of the MongoDB® user.
296
+ :param pulumi.Input[builtins.str] password: The password of the MongoDB® user.
297
+ :param pulumi.Input[builtins.str] region: `region`) The region in which the MongoDB® user should be created.
298
+ :param pulumi.Input[Sequence[pulumi.Input[Union['UserRoleArgs', 'UserRoleArgsDict']]]] roles: List of roles assigned to the user. Each role block supports:
299
+ """
300
+ ...
301
+ @overload
302
+ def __init__(__self__,
303
+ resource_name: str,
304
+ args: UserArgs,
305
+ opts: Optional[pulumi.ResourceOptions] = None):
306
+ """
307
+ Creates and manages Scaleway MongoDB® users.
308
+ For more information refer to the [product documentation](https://www.scaleway.com/en/docs/managed-mongodb-databases/).
309
+
310
+ ## Example Usage
311
+
312
+ ### Basic
313
+
314
+ ```python
315
+ import pulumi
316
+ import pulumiverse_scaleway as scaleway
317
+
318
+ main = scaleway.mongodb.Instance("main",
319
+ name="test-mongodb-user",
320
+ version="7.0.12",
321
+ node_type="MGDB-PLAY2-NANO",
322
+ node_number=1,
323
+ user_name="initial_user",
324
+ password="initial_password123",
325
+ volume_size_in_gb=5)
326
+ main_user = scaleway.mongodb.User("main",
327
+ instance_id=main.id,
328
+ name="my_user",
329
+ password="my_password123",
330
+ roles=[{
331
+ "role": "read_write",
332
+ "database_name": "my_database",
333
+ }])
334
+ ```
335
+
336
+ ### With Multiple Users
337
+
338
+ ```python
339
+ import pulumi
340
+ import pulumiverse_scaleway as scaleway
341
+
342
+ main = scaleway.mongodb.Instance("main",
343
+ name="test-mongodb-multi-user",
344
+ version="7.0.12",
345
+ node_type="MGDB-PLAY2-NANO",
346
+ node_number=1,
347
+ user_name="admin_user",
348
+ password="admin_password123",
349
+ volume_size_in_gb=5)
350
+ app_user = scaleway.mongodb.User("app_user",
351
+ instance_id=main.id,
352
+ name="app_user",
353
+ password="app_password123",
354
+ roles=[
355
+ {
356
+ "role": "read_write",
357
+ "database_name": "app_database",
358
+ },
359
+ {
360
+ "role": "read",
361
+ "database_name": "logs_database",
362
+ },
363
+ ])
364
+ admin_user = scaleway.mongodb.User("admin_user",
365
+ instance_id=main.id,
366
+ name="admin_user",
367
+ password="admin_password123",
368
+ roles=[
369
+ {
370
+ "role": "db_admin",
371
+ "database_name": "admin",
372
+ },
373
+ {
374
+ "role": "read",
375
+ "any_database": True,
376
+ },
377
+ ])
378
+ ```
379
+
380
+ ## Import
381
+
382
+ MongoDB® users can be imported using the `{region}/{instance_id}/{name}`, e.g.
383
+
384
+ bash
385
+
386
+ ```sh
387
+ $ pulumi import scaleway:mongodb/user:User main fr-par/11111111-1111-1111-1111-111111111111/my_user
388
+ ```
389
+
390
+ :param str resource_name: The name of the resource.
391
+ :param UserArgs args: The arguments to use to populate this resource's properties.
392
+ :param pulumi.ResourceOptions opts: Options for the resource.
393
+ """
394
+ ...
395
+ def __init__(__self__, resource_name: str, *args, **kwargs):
396
+ resource_args, opts = _utilities.get_resource_args_opts(UserArgs, pulumi.ResourceOptions, *args, **kwargs)
397
+ if resource_args is not None:
398
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
399
+ else:
400
+ __self__._internal_init(resource_name, *args, **kwargs)
401
+
402
+ def _internal_init(__self__,
403
+ resource_name: str,
404
+ opts: Optional[pulumi.ResourceOptions] = None,
405
+ instance_id: Optional[pulumi.Input[builtins.str]] = None,
406
+ name: Optional[pulumi.Input[builtins.str]] = None,
407
+ password: Optional[pulumi.Input[builtins.str]] = None,
408
+ region: Optional[pulumi.Input[builtins.str]] = None,
409
+ roles: Optional[pulumi.Input[Sequence[pulumi.Input[Union['UserRoleArgs', 'UserRoleArgsDict']]]]] = None,
410
+ __props__=None):
411
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
412
+ if not isinstance(opts, pulumi.ResourceOptions):
413
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
414
+ if opts.id is None:
415
+ if __props__ is not None:
416
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
417
+ __props__ = UserArgs.__new__(UserArgs)
418
+
419
+ if instance_id is None and not opts.urn:
420
+ raise TypeError("Missing required property 'instance_id'")
421
+ __props__.__dict__["instance_id"] = instance_id
422
+ __props__.__dict__["name"] = name
423
+ if password is None and not opts.urn:
424
+ raise TypeError("Missing required property 'password'")
425
+ __props__.__dict__["password"] = None if password is None else pulumi.Output.secret(password)
426
+ __props__.__dict__["region"] = region
427
+ __props__.__dict__["roles"] = roles
428
+ secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["password"])
429
+ opts = pulumi.ResourceOptions.merge(opts, secret_opts)
430
+ super(User, __self__).__init__(
431
+ 'scaleway:mongodb/user:User',
432
+ resource_name,
433
+ __props__,
434
+ opts)
435
+
436
+ @staticmethod
437
+ def get(resource_name: str,
438
+ id: pulumi.Input[str],
439
+ opts: Optional[pulumi.ResourceOptions] = None,
440
+ instance_id: Optional[pulumi.Input[builtins.str]] = None,
441
+ name: Optional[pulumi.Input[builtins.str]] = None,
442
+ password: Optional[pulumi.Input[builtins.str]] = None,
443
+ region: Optional[pulumi.Input[builtins.str]] = None,
444
+ roles: Optional[pulumi.Input[Sequence[pulumi.Input[Union['UserRoleArgs', 'UserRoleArgsDict']]]]] = None) -> 'User':
445
+ """
446
+ Get an existing User resource's state with the given name, id, and optional extra
447
+ properties used to qualify the lookup.
448
+
449
+ :param str resource_name: The unique name of the resulting resource.
450
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
451
+ :param pulumi.ResourceOptions opts: Options for the resource.
452
+ :param pulumi.Input[builtins.str] instance_id: The ID of the MongoDB® instance.
453
+ :param pulumi.Input[builtins.str] name: The name of the MongoDB® user.
454
+ :param pulumi.Input[builtins.str] password: The password of the MongoDB® user.
455
+ :param pulumi.Input[builtins.str] region: `region`) The region in which the MongoDB® user should be created.
456
+ :param pulumi.Input[Sequence[pulumi.Input[Union['UserRoleArgs', 'UserRoleArgsDict']]]] roles: List of roles assigned to the user. Each role block supports:
457
+ """
458
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
459
+
460
+ __props__ = _UserState.__new__(_UserState)
461
+
462
+ __props__.__dict__["instance_id"] = instance_id
463
+ __props__.__dict__["name"] = name
464
+ __props__.__dict__["password"] = password
465
+ __props__.__dict__["region"] = region
466
+ __props__.__dict__["roles"] = roles
467
+ return User(resource_name, opts=opts, __props__=__props__)
468
+
469
+ @property
470
+ @pulumi.getter(name="instanceId")
471
+ def instance_id(self) -> pulumi.Output[builtins.str]:
472
+ """
473
+ The ID of the MongoDB® instance.
474
+ """
475
+ return pulumi.get(self, "instance_id")
476
+
477
+ @property
478
+ @pulumi.getter
479
+ def name(self) -> pulumi.Output[builtins.str]:
480
+ """
481
+ The name of the MongoDB® user.
482
+ """
483
+ return pulumi.get(self, "name")
484
+
485
+ @property
486
+ @pulumi.getter
487
+ def password(self) -> pulumi.Output[builtins.str]:
488
+ """
489
+ The password of the MongoDB® user.
490
+ """
491
+ return pulumi.get(self, "password")
492
+
493
+ @property
494
+ @pulumi.getter
495
+ def region(self) -> pulumi.Output[builtins.str]:
496
+ """
497
+ `region`) The region in which the MongoDB® user should be created.
498
+ """
499
+ return pulumi.get(self, "region")
500
+
501
+ @property
502
+ @pulumi.getter
503
+ def roles(self) -> pulumi.Output[Optional[Sequence['outputs.UserRole']]]:
504
+ """
505
+ List of roles assigned to the user. Each role block supports:
506
+ """
507
+ return pulumi.get(self, "roles")
508
+
@@ -865,6 +865,7 @@ class GetVpcsVpcResult(dict):
865
865
  :param builtins.str project_id: The ID of the Project the VPC is associated with.
866
866
  :param builtins.str region: `region`). The region in which the VPCs exist.
867
867
  :param Sequence[builtins.str] tags: List of tags to filter for. VPCs with these exact tags are listed.
868
+ :param builtins.str update_at: Date on which the VPC was last updated (RFC 3339 format)
868
869
  """
869
870
  pulumi.set(__self__, "created_at", created_at)
870
871
  pulumi.set(__self__, "id", id)
@@ -944,6 +945,9 @@ class GetVpcsVpcResult(dict):
944
945
  @property
945
946
  @pulumi.getter(name="updateAt")
946
947
  def update_at(self) -> builtins.str:
948
+ """
949
+ Date on which the VPC was last updated (RFC 3339 format)
950
+ """
947
951
  return pulumi.get(self, "update_at")
948
952
 
949
953
 
@@ -53,6 +53,9 @@ if not MYPY:
53
53
  Configuration block of the bucket project owner's display organization ID.
54
54
  """
55
55
  grants: NotRequired[pulumi.Input[Sequence[pulumi.Input['BucketAclAccessControlPolicyGrantArgsDict']]]]
56
+ """
57
+ Grant
58
+ """
56
59
  elif False:
57
60
  BucketAclAccessControlPolicyArgsDict: TypeAlias = Mapping[str, Any]
58
61
 
@@ -63,6 +66,7 @@ class BucketAclAccessControlPolicyArgs:
63
66
  grants: Optional[pulumi.Input[Sequence[pulumi.Input['BucketAclAccessControlPolicyGrantArgs']]]] = None):
64
67
  """
65
68
  :param pulumi.Input['BucketAclAccessControlPolicyOwnerArgs'] owner: Configuration block of the bucket project owner's display organization ID.
69
+ :param pulumi.Input[Sequence[pulumi.Input['BucketAclAccessControlPolicyGrantArgs']]] grants: Grant
66
70
  """
67
71
  pulumi.set(__self__, "owner", owner)
68
72
  if grants is not None:
@@ -83,6 +87,9 @@ class BucketAclAccessControlPolicyArgs:
83
87
  @property
84
88
  @pulumi.getter
85
89
  def grants(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['BucketAclAccessControlPolicyGrantArgs']]]]:
90
+ """
91
+ Grant
92
+ """
86
93
  return pulumi.get(self, "grants")
87
94
 
88
95
  @grants.setter
@@ -144,6 +151,9 @@ class BucketAclAccessControlPolicyGrantArgs:
144
151
  if not MYPY:
145
152
  class BucketAclAccessControlPolicyGrantGranteeArgsDict(TypedDict):
146
153
  display_name: NotRequired[pulumi.Input[builtins.str]]
154
+ """
155
+ Display name of the grantee to grant access to.
156
+ """
147
157
  id: NotRequired[pulumi.Input[builtins.str]]
148
158
  """
149
159
  The `region`, `bucket` and `acl` separated by (`/`).
@@ -167,6 +177,7 @@ class BucketAclAccessControlPolicyGrantGranteeArgs:
167
177
  type: Optional[pulumi.Input[builtins.str]] = None,
168
178
  uri: Optional[pulumi.Input[builtins.str]] = None):
169
179
  """
180
+ :param pulumi.Input[builtins.str] display_name: Display name of the grantee to grant access to.
170
181
  :param pulumi.Input[builtins.str] id: The `region`, `bucket` and `acl` separated by (`/`).
171
182
  :param pulumi.Input[builtins.str] type: Type of grantee. Valid values: `CanonicalUser`, `Group`
172
183
  :param pulumi.Input[builtins.str] uri: The uri of the grantee if you are granting permissions to a predefined group.
@@ -183,6 +194,9 @@ class BucketAclAccessControlPolicyGrantGranteeArgs:
183
194
  @property
184
195
  @pulumi.getter(name="displayName")
185
196
  def display_name(self) -> Optional[pulumi.Input[builtins.str]]:
197
+ """
198
+ Display name of the grantee to grant access to.
199
+ """
186
200
  return pulumi.get(self, "display_name")
187
201
 
188
202
  @display_name.setter