pulumiverse-scaleway 1.23.0a1736837529__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 pulumiverse-scaleway might be problematic. Click here for more details.

Files changed (205) hide show
  1. pulumiverse_scaleway/__init__.py +1065 -0
  2. pulumiverse_scaleway/_inputs.py +8688 -0
  3. pulumiverse_scaleway/_utilities.py +327 -0
  4. pulumiverse_scaleway/account_project.py +316 -0
  5. pulumiverse_scaleway/account_ssh_key.py +454 -0
  6. pulumiverse_scaleway/apple_silicon_server.py +564 -0
  7. pulumiverse_scaleway/baremetal_server.py +1579 -0
  8. pulumiverse_scaleway/block_snapshot.py +401 -0
  9. pulumiverse_scaleway/block_volume.py +527 -0
  10. pulumiverse_scaleway/cockpit.py +314 -0
  11. pulumiverse_scaleway/cockpit_alert_manager.py +401 -0
  12. pulumiverse_scaleway/cockpit_grafana_user.py +362 -0
  13. pulumiverse_scaleway/cockpit_source.py +567 -0
  14. pulumiverse_scaleway/cockpit_token.py +479 -0
  15. pulumiverse_scaleway/config/__init__.py +8 -0
  16. pulumiverse_scaleway/config/__init__.pyi +56 -0
  17. pulumiverse_scaleway/config/vars.py +78 -0
  18. pulumiverse_scaleway/container.py +1373 -0
  19. pulumiverse_scaleway/container_cron.py +458 -0
  20. pulumiverse_scaleway/container_domain.py +406 -0
  21. pulumiverse_scaleway/container_namespace.py +636 -0
  22. pulumiverse_scaleway/container_token.py +452 -0
  23. pulumiverse_scaleway/container_trigger.py +480 -0
  24. pulumiverse_scaleway/database.py +407 -0
  25. pulumiverse_scaleway/database_acl.py +332 -0
  26. pulumiverse_scaleway/database_backup.py +574 -0
  27. pulumiverse_scaleway/database_instance.py +1641 -0
  28. pulumiverse_scaleway/database_privilege.py +422 -0
  29. pulumiverse_scaleway/database_read_replica.py +528 -0
  30. pulumiverse_scaleway/database_user.py +446 -0
  31. pulumiverse_scaleway/domain_record.py +1116 -0
  32. pulumiverse_scaleway/domain_zone.py +430 -0
  33. pulumiverse_scaleway/flexible_ip.py +702 -0
  34. pulumiverse_scaleway/flexible_ip_mac_address.py +510 -0
  35. pulumiverse_scaleway/function.py +1103 -0
  36. pulumiverse_scaleway/function_cron.py +462 -0
  37. pulumiverse_scaleway/function_domain.py +370 -0
  38. pulumiverse_scaleway/function_namespace.py +580 -0
  39. pulumiverse_scaleway/function_token.py +460 -0
  40. pulumiverse_scaleway/function_trigger.py +480 -0
  41. pulumiverse_scaleway/get_account_project.py +170 -0
  42. pulumiverse_scaleway/get_account_ssh_key.py +205 -0
  43. pulumiverse_scaleway/get_availability_zones.py +139 -0
  44. pulumiverse_scaleway/get_baremetal_offer.py +245 -0
  45. pulumiverse_scaleway/get_baremetal_option.py +168 -0
  46. pulumiverse_scaleway/get_baremetal_os.py +174 -0
  47. pulumiverse_scaleway/get_baremetal_server.py +422 -0
  48. pulumiverse_scaleway/get_billing_consumptions.py +134 -0
  49. pulumiverse_scaleway/get_billing_invoices.py +154 -0
  50. pulumiverse_scaleway/get_block_snapshot.py +174 -0
  51. pulumiverse_scaleway/get_block_volume.py +188 -0
  52. pulumiverse_scaleway/get_cockpit.py +204 -0
  53. pulumiverse_scaleway/get_cockpit_plan.py +125 -0
  54. pulumiverse_scaleway/get_cockpit_source.py +262 -0
  55. pulumiverse_scaleway/get_config.py +180 -0
  56. pulumiverse_scaleway/get_container.py +522 -0
  57. pulumiverse_scaleway/get_container_namespace.py +283 -0
  58. pulumiverse_scaleway/get_database.py +187 -0
  59. pulumiverse_scaleway/get_database_acl.py +143 -0
  60. pulumiverse_scaleway/get_database_backup.py +253 -0
  61. pulumiverse_scaleway/get_database_instance.py +404 -0
  62. pulumiverse_scaleway/get_database_privilege.py +181 -0
  63. pulumiverse_scaleway/get_domain_record.py +340 -0
  64. pulumiverse_scaleway/get_domain_zone.py +201 -0
  65. pulumiverse_scaleway/get_flexible_ip.py +247 -0
  66. pulumiverse_scaleway/get_flexible_ips.py +240 -0
  67. pulumiverse_scaleway/get_function.py +365 -0
  68. pulumiverse_scaleway/get_function_namespace.py +238 -0
  69. pulumiverse_scaleway/get_iam_api_key.py +210 -0
  70. pulumiverse_scaleway/get_iam_application.py +210 -0
  71. pulumiverse_scaleway/get_iam_group.py +236 -0
  72. pulumiverse_scaleway/get_iam_ssh_key.py +212 -0
  73. pulumiverse_scaleway/get_iam_user.py +177 -0
  74. pulumiverse_scaleway/get_instance_image.py +305 -0
  75. pulumiverse_scaleway/get_instance_ip.py +204 -0
  76. pulumiverse_scaleway/get_instance_placement_group.py +212 -0
  77. pulumiverse_scaleway/get_instance_private_nic.py +226 -0
  78. pulumiverse_scaleway/get_instance_security_group.py +268 -0
  79. pulumiverse_scaleway/get_instance_server.py +502 -0
  80. pulumiverse_scaleway/get_instance_servers.py +187 -0
  81. pulumiverse_scaleway/get_instance_snapshot.py +248 -0
  82. pulumiverse_scaleway/get_instance_volume.py +215 -0
  83. pulumiverse_scaleway/get_iot_device.py +257 -0
  84. pulumiverse_scaleway/get_iot_hub.py +322 -0
  85. pulumiverse_scaleway/get_ipam_ip.py +419 -0
  86. pulumiverse_scaleway/get_ipam_ips.py +358 -0
  87. pulumiverse_scaleway/get_k8s_version.py +196 -0
  88. pulumiverse_scaleway/get_kubernetes_cluster.py +417 -0
  89. pulumiverse_scaleway/get_kubernetes_node_pool.py +436 -0
  90. pulumiverse_scaleway/get_lb_acls.py +198 -0
  91. pulumiverse_scaleway/get_lb_backend.py +486 -0
  92. pulumiverse_scaleway/get_lb_backends.py +196 -0
  93. pulumiverse_scaleway/get_lb_frontend.py +274 -0
  94. pulumiverse_scaleway/get_lb_frontends.py +196 -0
  95. pulumiverse_scaleway/get_lb_ips.py +198 -0
  96. pulumiverse_scaleway/get_lb_route.py +217 -0
  97. pulumiverse_scaleway/get_lb_routes.py +179 -0
  98. pulumiverse_scaleway/get_lbs.py +187 -0
  99. pulumiverse_scaleway/get_loadbalancer.py +339 -0
  100. pulumiverse_scaleway/get_loadbalancer_certificate.py +230 -0
  101. pulumiverse_scaleway/get_loadbalancer_ip.py +228 -0
  102. pulumiverse_scaleway/get_marketplace_image.py +147 -0
  103. pulumiverse_scaleway/get_mnq_sns.py +150 -0
  104. pulumiverse_scaleway/get_mnq_sqs.py +150 -0
  105. pulumiverse_scaleway/get_mongo_db_instance.py +324 -0
  106. pulumiverse_scaleway/get_object_bucket.py +290 -0
  107. pulumiverse_scaleway/get_object_bucket_policy.py +163 -0
  108. pulumiverse_scaleway/get_redis_cluster.py +347 -0
  109. pulumiverse_scaleway/get_registry_image.py +239 -0
  110. pulumiverse_scaleway/get_registry_image_tag.py +229 -0
  111. pulumiverse_scaleway/get_registry_namespace.py +199 -0
  112. pulumiverse_scaleway/get_secret.py +338 -0
  113. pulumiverse_scaleway/get_secret_version.py +340 -0
  114. pulumiverse_scaleway/get_tem_domain.py +378 -0
  115. pulumiverse_scaleway/get_vpc.py +246 -0
  116. pulumiverse_scaleway/get_vpc_gateway_network.py +287 -0
  117. pulumiverse_scaleway/get_vpc_private_network.py +282 -0
  118. pulumiverse_scaleway/get_vpc_public_gateway.py +304 -0
  119. pulumiverse_scaleway/get_vpc_public_gateway_dhcp.py +305 -0
  120. pulumiverse_scaleway/get_vpc_public_gateway_dhcp_reservation.py +382 -0
  121. pulumiverse_scaleway/get_vpc_public_gateway_ip.py +199 -0
  122. pulumiverse_scaleway/get_vpc_public_pat_rule.py +313 -0
  123. pulumiverse_scaleway/get_vpc_routes.py +208 -0
  124. pulumiverse_scaleway/get_vpcs.py +174 -0
  125. pulumiverse_scaleway/get_web_host_offer.py +192 -0
  126. pulumiverse_scaleway/get_webhosting.py +332 -0
  127. pulumiverse_scaleway/iam_api_key.py +620 -0
  128. pulumiverse_scaleway/iam_application.py +417 -0
  129. pulumiverse_scaleway/iam_group.py +566 -0
  130. pulumiverse_scaleway/iam_group_membership.py +323 -0
  131. pulumiverse_scaleway/iam_policy.py +773 -0
  132. pulumiverse_scaleway/iam_ssh_key.py +455 -0
  133. pulumiverse_scaleway/iam_user.py +513 -0
  134. pulumiverse_scaleway/inference_deployment.py +822 -0
  135. pulumiverse_scaleway/instance_image.py +750 -0
  136. pulumiverse_scaleway/instance_ip.py +483 -0
  137. pulumiverse_scaleway/instance_ip_reverse_dns.py +308 -0
  138. pulumiverse_scaleway/instance_placement_group.py +479 -0
  139. pulumiverse_scaleway/instance_private_nic.py +555 -0
  140. pulumiverse_scaleway/instance_security_group.py +720 -0
  141. pulumiverse_scaleway/instance_security_group_rules.py +439 -0
  142. pulumiverse_scaleway/instance_server.py +2006 -0
  143. pulumiverse_scaleway/instance_snapshot.py +669 -0
  144. pulumiverse_scaleway/instance_user_data.py +435 -0
  145. pulumiverse_scaleway/instance_volume.py +535 -0
  146. pulumiverse_scaleway/iot_device.py +750 -0
  147. pulumiverse_scaleway/iot_hub.py +896 -0
  148. pulumiverse_scaleway/iot_network.py +472 -0
  149. pulumiverse_scaleway/iot_route.py +660 -0
  150. pulumiverse_scaleway/ipam_ip.py +757 -0
  151. pulumiverse_scaleway/ipam_ip_reverse_dns.py +318 -0
  152. pulumiverse_scaleway/job_definition.py +692 -0
  153. pulumiverse_scaleway/kubernetes_cluster.py +1538 -0
  154. pulumiverse_scaleway/kubernetes_node_pool.py +1255 -0
  155. pulumiverse_scaleway/loadbalancer.py +1061 -0
  156. pulumiverse_scaleway/loadbalancer_acl.py +520 -0
  157. pulumiverse_scaleway/loadbalancer_backend.py +1588 -0
  158. pulumiverse_scaleway/loadbalancer_certificate.py +460 -0
  159. pulumiverse_scaleway/loadbalancer_frontend.py +829 -0
  160. pulumiverse_scaleway/loadbalancer_ip.py +514 -0
  161. pulumiverse_scaleway/loadbalancer_route.py +523 -0
  162. pulumiverse_scaleway/mnq_nats_account.py +334 -0
  163. pulumiverse_scaleway/mnq_nats_credentials.py +330 -0
  164. pulumiverse_scaleway/mnq_sns.py +306 -0
  165. pulumiverse_scaleway/mnq_sns_credentials.py +413 -0
  166. pulumiverse_scaleway/mnq_sns_topic.py +659 -0
  167. pulumiverse_scaleway/mnq_sns_topic_subscription.py +699 -0
  168. pulumiverse_scaleway/mnq_sqs.py +304 -0
  169. pulumiverse_scaleway/mnq_sqs_credentials.py +413 -0
  170. pulumiverse_scaleway/mnq_sqs_queue.py +800 -0
  171. pulumiverse_scaleway/mongo_db_instance.py +907 -0
  172. pulumiverse_scaleway/mongo_db_snapshot.py +521 -0
  173. pulumiverse_scaleway/object_bucket.py +874 -0
  174. pulumiverse_scaleway/object_bucket_acl.py +596 -0
  175. pulumiverse_scaleway/object_bucket_lock_configuration.py +395 -0
  176. pulumiverse_scaleway/object_bucket_policy.py +673 -0
  177. pulumiverse_scaleway/object_bucket_website_configuration.py +534 -0
  178. pulumiverse_scaleway/object_item.py +776 -0
  179. pulumiverse_scaleway/outputs.py +11808 -0
  180. pulumiverse_scaleway/provider.py +327 -0
  181. pulumiverse_scaleway/pulumi-plugin.json +6 -0
  182. pulumiverse_scaleway/py.typed +0 -0
  183. pulumiverse_scaleway/redis_cluster.py +1201 -0
  184. pulumiverse_scaleway/registry_namespace.py +458 -0
  185. pulumiverse_scaleway/sdb_database.py +432 -0
  186. pulumiverse_scaleway/secret.py +663 -0
  187. pulumiverse_scaleway/secret_version.py +487 -0
  188. pulumiverse_scaleway/tem_domain.py +1030 -0
  189. pulumiverse_scaleway/tem_domain_validation.py +303 -0
  190. pulumiverse_scaleway/tem_webhook.py +640 -0
  191. pulumiverse_scaleway/vpc.py +536 -0
  192. pulumiverse_scaleway/vpc_gateway_network.py +866 -0
  193. pulumiverse_scaleway/vpc_private_network.py +734 -0
  194. pulumiverse_scaleway/vpc_public_gateway.py +789 -0
  195. pulumiverse_scaleway/vpc_public_gateway_dhcp.py +933 -0
  196. pulumiverse_scaleway/vpc_public_gateway_dhcp_reservation.py +514 -0
  197. pulumiverse_scaleway/vpc_public_gateway_ip.py +457 -0
  198. pulumiverse_scaleway/vpc_public_gateway_ip_reverse_dns.py +306 -0
  199. pulumiverse_scaleway/vpc_public_gateway_pat_rule.py +591 -0
  200. pulumiverse_scaleway/vpc_route.py +577 -0
  201. pulumiverse_scaleway/webhosting.py +805 -0
  202. pulumiverse_scaleway-1.23.0a1736837529.dist-info/METADATA +77 -0
  203. pulumiverse_scaleway-1.23.0a1736837529.dist-info/RECORD +205 -0
  204. pulumiverse_scaleway-1.23.0a1736837529.dist-info/WHEEL +5 -0
  205. pulumiverse_scaleway-1.23.0a1736837529.dist-info/top_level.txt +1 -0
@@ -0,0 +1,446 @@
1
+ # coding=utf-8
2
+ # *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
3
+ # *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+
5
+ import copy
6
+ import warnings
7
+ import sys
8
+ import pulumi
9
+ import pulumi.runtime
10
+ from typing import Any, Mapping, Optional, Sequence, Union, overload
11
+ if sys.version_info >= (3, 11):
12
+ from typing import NotRequired, TypedDict, TypeAlias
13
+ else:
14
+ from typing_extensions import NotRequired, TypedDict, TypeAlias
15
+ from . import _utilities
16
+
17
+ __all__ = ['DatabaseUserArgs', 'DatabaseUser']
18
+
19
+ @pulumi.input_type
20
+ class DatabaseUserArgs:
21
+ def __init__(__self__, *,
22
+ instance_id: pulumi.Input[str],
23
+ password: pulumi.Input[str],
24
+ is_admin: Optional[pulumi.Input[bool]] = None,
25
+ name: Optional[pulumi.Input[str]] = None,
26
+ region: Optional[pulumi.Input[str]] = None):
27
+ """
28
+ The set of arguments for constructing a DatabaseUser resource.
29
+ :param pulumi.Input[str] instance_id: UUID of the Database Instance.
30
+
31
+ > **Important:** Updates to `instance_id` will recreate the database user.
32
+ :param pulumi.Input[str] password: database user password.
33
+ :param pulumi.Input[bool] is_admin: Grant admin permissions to the database user.
34
+ :param pulumi.Input[str] name: database user name.
35
+
36
+ > **Important:** Updates to `name` will recreate the database user.
37
+ :param pulumi.Input[str] region: The Scaleway region this resource resides in.
38
+ """
39
+ pulumi.set(__self__, "instance_id", instance_id)
40
+ pulumi.set(__self__, "password", password)
41
+ if is_admin is not None:
42
+ pulumi.set(__self__, "is_admin", is_admin)
43
+ if name is not None:
44
+ pulumi.set(__self__, "name", name)
45
+ if region is not None:
46
+ pulumi.set(__self__, "region", region)
47
+
48
+ @property
49
+ @pulumi.getter(name="instanceId")
50
+ def instance_id(self) -> pulumi.Input[str]:
51
+ """
52
+ UUID of the Database Instance.
53
+
54
+ > **Important:** Updates to `instance_id` will recreate the database user.
55
+ """
56
+ return pulumi.get(self, "instance_id")
57
+
58
+ @instance_id.setter
59
+ def instance_id(self, value: pulumi.Input[str]):
60
+ pulumi.set(self, "instance_id", value)
61
+
62
+ @property
63
+ @pulumi.getter
64
+ def password(self) -> pulumi.Input[str]:
65
+ """
66
+ database user password.
67
+ """
68
+ return pulumi.get(self, "password")
69
+
70
+ @password.setter
71
+ def password(self, value: pulumi.Input[str]):
72
+ pulumi.set(self, "password", value)
73
+
74
+ @property
75
+ @pulumi.getter(name="isAdmin")
76
+ def is_admin(self) -> Optional[pulumi.Input[bool]]:
77
+ """
78
+ Grant admin permissions to the database user.
79
+ """
80
+ return pulumi.get(self, "is_admin")
81
+
82
+ @is_admin.setter
83
+ def is_admin(self, value: Optional[pulumi.Input[bool]]):
84
+ pulumi.set(self, "is_admin", value)
85
+
86
+ @property
87
+ @pulumi.getter
88
+ def name(self) -> Optional[pulumi.Input[str]]:
89
+ """
90
+ database user name.
91
+
92
+ > **Important:** Updates to `name` will recreate the database user.
93
+ """
94
+ return pulumi.get(self, "name")
95
+
96
+ @name.setter
97
+ def name(self, value: Optional[pulumi.Input[str]]):
98
+ pulumi.set(self, "name", value)
99
+
100
+ @property
101
+ @pulumi.getter
102
+ def region(self) -> Optional[pulumi.Input[str]]:
103
+ """
104
+ The Scaleway region this resource resides in.
105
+ """
106
+ return pulumi.get(self, "region")
107
+
108
+ @region.setter
109
+ def region(self, value: Optional[pulumi.Input[str]]):
110
+ pulumi.set(self, "region", value)
111
+
112
+
113
+ @pulumi.input_type
114
+ class _DatabaseUserState:
115
+ def __init__(__self__, *,
116
+ instance_id: Optional[pulumi.Input[str]] = None,
117
+ is_admin: Optional[pulumi.Input[bool]] = None,
118
+ name: Optional[pulumi.Input[str]] = None,
119
+ password: Optional[pulumi.Input[str]] = None,
120
+ region: Optional[pulumi.Input[str]] = None):
121
+ """
122
+ Input properties used for looking up and filtering DatabaseUser resources.
123
+ :param pulumi.Input[str] instance_id: UUID of the Database Instance.
124
+
125
+ > **Important:** Updates to `instance_id` will recreate the database user.
126
+ :param pulumi.Input[bool] is_admin: Grant admin permissions to the database user.
127
+ :param pulumi.Input[str] name: database user name.
128
+
129
+ > **Important:** Updates to `name` will recreate the database user.
130
+ :param pulumi.Input[str] password: database user password.
131
+ :param pulumi.Input[str] region: The Scaleway region this resource resides in.
132
+ """
133
+ if instance_id is not None:
134
+ pulumi.set(__self__, "instance_id", instance_id)
135
+ if is_admin is not None:
136
+ pulumi.set(__self__, "is_admin", is_admin)
137
+ if name is not None:
138
+ pulumi.set(__self__, "name", name)
139
+ if password is not None:
140
+ pulumi.set(__self__, "password", password)
141
+ if region is not None:
142
+ pulumi.set(__self__, "region", region)
143
+
144
+ @property
145
+ @pulumi.getter(name="instanceId")
146
+ def instance_id(self) -> Optional[pulumi.Input[str]]:
147
+ """
148
+ UUID of the Database Instance.
149
+
150
+ > **Important:** Updates to `instance_id` will recreate the database user.
151
+ """
152
+ return pulumi.get(self, "instance_id")
153
+
154
+ @instance_id.setter
155
+ def instance_id(self, value: Optional[pulumi.Input[str]]):
156
+ pulumi.set(self, "instance_id", value)
157
+
158
+ @property
159
+ @pulumi.getter(name="isAdmin")
160
+ def is_admin(self) -> Optional[pulumi.Input[bool]]:
161
+ """
162
+ Grant admin permissions to the database user.
163
+ """
164
+ return pulumi.get(self, "is_admin")
165
+
166
+ @is_admin.setter
167
+ def is_admin(self, value: Optional[pulumi.Input[bool]]):
168
+ pulumi.set(self, "is_admin", value)
169
+
170
+ @property
171
+ @pulumi.getter
172
+ def name(self) -> Optional[pulumi.Input[str]]:
173
+ """
174
+ database user name.
175
+
176
+ > **Important:** Updates to `name` will recreate the database user.
177
+ """
178
+ return pulumi.get(self, "name")
179
+
180
+ @name.setter
181
+ def name(self, value: Optional[pulumi.Input[str]]):
182
+ pulumi.set(self, "name", value)
183
+
184
+ @property
185
+ @pulumi.getter
186
+ def password(self) -> Optional[pulumi.Input[str]]:
187
+ """
188
+ database user password.
189
+ """
190
+ return pulumi.get(self, "password")
191
+
192
+ @password.setter
193
+ def password(self, value: Optional[pulumi.Input[str]]):
194
+ pulumi.set(self, "password", value)
195
+
196
+ @property
197
+ @pulumi.getter
198
+ def region(self) -> Optional[pulumi.Input[str]]:
199
+ """
200
+ The Scaleway region this resource resides in.
201
+ """
202
+ return pulumi.get(self, "region")
203
+
204
+ @region.setter
205
+ def region(self, value: Optional[pulumi.Input[str]]):
206
+ pulumi.set(self, "region", value)
207
+
208
+
209
+ class DatabaseUser(pulumi.CustomResource):
210
+ @overload
211
+ def __init__(__self__,
212
+ resource_name: str,
213
+ opts: Optional[pulumi.ResourceOptions] = None,
214
+ instance_id: Optional[pulumi.Input[str]] = None,
215
+ is_admin: Optional[pulumi.Input[bool]] = None,
216
+ name: Optional[pulumi.Input[str]] = None,
217
+ password: Optional[pulumi.Input[str]] = None,
218
+ region: Optional[pulumi.Input[str]] = None,
219
+ __props__=None):
220
+ """
221
+ Creates and manages database users.
222
+ For more information refer to [the API documentation](https://www.scaleway.com/en/developers/api/managed-database-postgre-mysql/).
223
+
224
+ ## Example Usage
225
+
226
+ ### Basic
227
+
228
+ ```python
229
+ import pulumi
230
+ import pulumi_random as random
231
+ import pulumiverse_scaleway as scaleway
232
+
233
+ main = scaleway.DatabaseInstance("main",
234
+ name="test-rdb",
235
+ node_type="DB-DEV-S",
236
+ engine="PostgreSQL-15",
237
+ is_ha_cluster=True,
238
+ disable_backup=True,
239
+ user_name="my_initial_user",
240
+ password="thiZ_is_v&ry_s3cret")
241
+ db_password = random.RandomPassword("db_password",
242
+ length=16,
243
+ special=True)
244
+ db_admin = scaleway.DatabaseUser("db_admin",
245
+ instance_id=main.id,
246
+ name="devtools",
247
+ password=db_password.result,
248
+ is_admin=True)
249
+ ```
250
+
251
+ ## Import
252
+
253
+ Database users can be imported using `{region}/{instance_id}/{user_name}`, e.g.
254
+
255
+ bash
256
+
257
+ ```sh
258
+ $ pulumi import scaleway:index/databaseUser:DatabaseUser admin fr-par/11111111-1111-1111-1111-111111111111/admin
259
+ ```
260
+
261
+ :param str resource_name: The name of the resource.
262
+ :param pulumi.ResourceOptions opts: Options for the resource.
263
+ :param pulumi.Input[str] instance_id: UUID of the Database Instance.
264
+
265
+ > **Important:** Updates to `instance_id` will recreate the database user.
266
+ :param pulumi.Input[bool] is_admin: Grant admin permissions to the database user.
267
+ :param pulumi.Input[str] name: database user name.
268
+
269
+ > **Important:** Updates to `name` will recreate the database user.
270
+ :param pulumi.Input[str] password: database user password.
271
+ :param pulumi.Input[str] region: The Scaleway region this resource resides in.
272
+ """
273
+ ...
274
+ @overload
275
+ def __init__(__self__,
276
+ resource_name: str,
277
+ args: DatabaseUserArgs,
278
+ opts: Optional[pulumi.ResourceOptions] = None):
279
+ """
280
+ Creates and manages database users.
281
+ For more information refer to [the API documentation](https://www.scaleway.com/en/developers/api/managed-database-postgre-mysql/).
282
+
283
+ ## Example Usage
284
+
285
+ ### Basic
286
+
287
+ ```python
288
+ import pulumi
289
+ import pulumi_random as random
290
+ import pulumiverse_scaleway as scaleway
291
+
292
+ main = scaleway.DatabaseInstance("main",
293
+ name="test-rdb",
294
+ node_type="DB-DEV-S",
295
+ engine="PostgreSQL-15",
296
+ is_ha_cluster=True,
297
+ disable_backup=True,
298
+ user_name="my_initial_user",
299
+ password="thiZ_is_v&ry_s3cret")
300
+ db_password = random.RandomPassword("db_password",
301
+ length=16,
302
+ special=True)
303
+ db_admin = scaleway.DatabaseUser("db_admin",
304
+ instance_id=main.id,
305
+ name="devtools",
306
+ password=db_password.result,
307
+ is_admin=True)
308
+ ```
309
+
310
+ ## Import
311
+
312
+ Database users can be imported using `{region}/{instance_id}/{user_name}`, e.g.
313
+
314
+ bash
315
+
316
+ ```sh
317
+ $ pulumi import scaleway:index/databaseUser:DatabaseUser admin fr-par/11111111-1111-1111-1111-111111111111/admin
318
+ ```
319
+
320
+ :param str resource_name: The name of the resource.
321
+ :param DatabaseUserArgs args: The arguments to use to populate this resource's properties.
322
+ :param pulumi.ResourceOptions opts: Options for the resource.
323
+ """
324
+ ...
325
+ def __init__(__self__, resource_name: str, *args, **kwargs):
326
+ resource_args, opts = _utilities.get_resource_args_opts(DatabaseUserArgs, pulumi.ResourceOptions, *args, **kwargs)
327
+ if resource_args is not None:
328
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
329
+ else:
330
+ __self__._internal_init(resource_name, *args, **kwargs)
331
+
332
+ def _internal_init(__self__,
333
+ resource_name: str,
334
+ opts: Optional[pulumi.ResourceOptions] = None,
335
+ instance_id: Optional[pulumi.Input[str]] = None,
336
+ is_admin: Optional[pulumi.Input[bool]] = None,
337
+ name: Optional[pulumi.Input[str]] = None,
338
+ password: Optional[pulumi.Input[str]] = None,
339
+ region: Optional[pulumi.Input[str]] = None,
340
+ __props__=None):
341
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
342
+ if not isinstance(opts, pulumi.ResourceOptions):
343
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
344
+ if opts.id is None:
345
+ if __props__ is not None:
346
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
347
+ __props__ = DatabaseUserArgs.__new__(DatabaseUserArgs)
348
+
349
+ if instance_id is None and not opts.urn:
350
+ raise TypeError("Missing required property 'instance_id'")
351
+ __props__.__dict__["instance_id"] = instance_id
352
+ __props__.__dict__["is_admin"] = is_admin
353
+ __props__.__dict__["name"] = name
354
+ if password is None and not opts.urn:
355
+ raise TypeError("Missing required property 'password'")
356
+ __props__.__dict__["password"] = None if password is None else pulumi.Output.secret(password)
357
+ __props__.__dict__["region"] = region
358
+ secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["password"])
359
+ opts = pulumi.ResourceOptions.merge(opts, secret_opts)
360
+ super(DatabaseUser, __self__).__init__(
361
+ 'scaleway:index/databaseUser:DatabaseUser',
362
+ resource_name,
363
+ __props__,
364
+ opts)
365
+
366
+ @staticmethod
367
+ def get(resource_name: str,
368
+ id: pulumi.Input[str],
369
+ opts: Optional[pulumi.ResourceOptions] = None,
370
+ instance_id: Optional[pulumi.Input[str]] = None,
371
+ is_admin: Optional[pulumi.Input[bool]] = None,
372
+ name: Optional[pulumi.Input[str]] = None,
373
+ password: Optional[pulumi.Input[str]] = None,
374
+ region: Optional[pulumi.Input[str]] = None) -> 'DatabaseUser':
375
+ """
376
+ Get an existing DatabaseUser resource's state with the given name, id, and optional extra
377
+ properties used to qualify the lookup.
378
+
379
+ :param str resource_name: The unique name of the resulting resource.
380
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
381
+ :param pulumi.ResourceOptions opts: Options for the resource.
382
+ :param pulumi.Input[str] instance_id: UUID of the Database Instance.
383
+
384
+ > **Important:** Updates to `instance_id` will recreate the database user.
385
+ :param pulumi.Input[bool] is_admin: Grant admin permissions to the database user.
386
+ :param pulumi.Input[str] name: database user name.
387
+
388
+ > **Important:** Updates to `name` will recreate the database user.
389
+ :param pulumi.Input[str] password: database user password.
390
+ :param pulumi.Input[str] region: The Scaleway region this resource resides in.
391
+ """
392
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
393
+
394
+ __props__ = _DatabaseUserState.__new__(_DatabaseUserState)
395
+
396
+ __props__.__dict__["instance_id"] = instance_id
397
+ __props__.__dict__["is_admin"] = is_admin
398
+ __props__.__dict__["name"] = name
399
+ __props__.__dict__["password"] = password
400
+ __props__.__dict__["region"] = region
401
+ return DatabaseUser(resource_name, opts=opts, __props__=__props__)
402
+
403
+ @property
404
+ @pulumi.getter(name="instanceId")
405
+ def instance_id(self) -> pulumi.Output[str]:
406
+ """
407
+ UUID of the Database Instance.
408
+
409
+ > **Important:** Updates to `instance_id` will recreate the database user.
410
+ """
411
+ return pulumi.get(self, "instance_id")
412
+
413
+ @property
414
+ @pulumi.getter(name="isAdmin")
415
+ def is_admin(self) -> pulumi.Output[Optional[bool]]:
416
+ """
417
+ Grant admin permissions to the database user.
418
+ """
419
+ return pulumi.get(self, "is_admin")
420
+
421
+ @property
422
+ @pulumi.getter
423
+ def name(self) -> pulumi.Output[str]:
424
+ """
425
+ database user name.
426
+
427
+ > **Important:** Updates to `name` will recreate the database user.
428
+ """
429
+ return pulumi.get(self, "name")
430
+
431
+ @property
432
+ @pulumi.getter
433
+ def password(self) -> pulumi.Output[str]:
434
+ """
435
+ database user password.
436
+ """
437
+ return pulumi.get(self, "password")
438
+
439
+ @property
440
+ @pulumi.getter
441
+ def region(self) -> pulumi.Output[str]:
442
+ """
443
+ The Scaleway region this resource resides in.
444
+ """
445
+ return pulumi.get(self, "region")
446
+