pulumiverse-scaleway 1.16.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.

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 +1073 -0
  2. pulumiverse_scaleway/_inputs.py +8665 -0
  3. pulumiverse_scaleway/_utilities.py +327 -0
  4. pulumiverse_scaleway/account_project.py +316 -0
  5. pulumiverse_scaleway/account_ssh_key.py +450 -0
  6. pulumiverse_scaleway/apple_silicon_server.py +564 -0
  7. pulumiverse_scaleway/baremetal_server.py +1390 -0
  8. pulumiverse_scaleway/block_snapshot.py +391 -0
  9. pulumiverse_scaleway/block_volume.py +521 -0
  10. pulumiverse_scaleway/cockpit.py +299 -0
  11. pulumiverse_scaleway/cockpit_alert_manager.py +345 -0
  12. pulumiverse_scaleway/cockpit_grafana_user.py +326 -0
  13. pulumiverse_scaleway/cockpit_source.py +481 -0
  14. pulumiverse_scaleway/cockpit_token.py +461 -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 +1387 -0
  19. pulumiverse_scaleway/container_cron.py +493 -0
  20. pulumiverse_scaleway/container_domain.py +400 -0
  21. pulumiverse_scaleway/container_namespace.py +589 -0
  22. pulumiverse_scaleway/container_token.py +454 -0
  23. pulumiverse_scaleway/container_trigger.py +478 -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 +1636 -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/documentdb_database.py +450 -0
  32. pulumiverse_scaleway/documentdb_instance.py +812 -0
  33. pulumiverse_scaleway/documentdb_private_network_endpoint.py +352 -0
  34. pulumiverse_scaleway/documentdb_privilege.py +402 -0
  35. pulumiverse_scaleway/documentdb_read_replica.py +405 -0
  36. pulumiverse_scaleway/documentdb_user.py +442 -0
  37. pulumiverse_scaleway/domain_record.py +1074 -0
  38. pulumiverse_scaleway/domain_zone.py +458 -0
  39. pulumiverse_scaleway/flexible_ip.py +702 -0
  40. pulumiverse_scaleway/flexible_ip_mac_address.py +510 -0
  41. pulumiverse_scaleway/function.py +1145 -0
  42. pulumiverse_scaleway/function_cron.py +480 -0
  43. pulumiverse_scaleway/function_domain.py +361 -0
  44. pulumiverse_scaleway/function_namespace.py +533 -0
  45. pulumiverse_scaleway/function_token.py +462 -0
  46. pulumiverse_scaleway/function_trigger.py +478 -0
  47. pulumiverse_scaleway/get_account_project.py +164 -0
  48. pulumiverse_scaleway/get_account_ssh_key.py +201 -0
  49. pulumiverse_scaleway/get_availability_zones.py +131 -0
  50. pulumiverse_scaleway/get_baremetal_offer.py +245 -0
  51. pulumiverse_scaleway/get_baremetal_option.py +168 -0
  52. pulumiverse_scaleway/get_baremetal_os.py +174 -0
  53. pulumiverse_scaleway/get_baremetal_server.py +411 -0
  54. pulumiverse_scaleway/get_billing_consumptions.py +134 -0
  55. pulumiverse_scaleway/get_billing_invoices.py +154 -0
  56. pulumiverse_scaleway/get_block_snapshot.py +170 -0
  57. pulumiverse_scaleway/get_block_volume.py +186 -0
  58. pulumiverse_scaleway/get_cockpit.py +179 -0
  59. pulumiverse_scaleway/get_cockpit_plan.py +113 -0
  60. pulumiverse_scaleway/get_config.py +180 -0
  61. pulumiverse_scaleway/get_container.py +502 -0
  62. pulumiverse_scaleway/get_container_namespace.py +262 -0
  63. pulumiverse_scaleway/get_database.py +187 -0
  64. pulumiverse_scaleway/get_database_acl.py +143 -0
  65. pulumiverse_scaleway/get_database_backup.py +253 -0
  66. pulumiverse_scaleway/get_database_instance.py +404 -0
  67. pulumiverse_scaleway/get_database_privilege.py +181 -0
  68. pulumiverse_scaleway/get_documentdb_database.py +198 -0
  69. pulumiverse_scaleway/get_documentdb_instance.py +245 -0
  70. pulumiverse_scaleway/get_documentdb_load_balancer_endpoint.py +198 -0
  71. pulumiverse_scaleway/get_domain_record.py +334 -0
  72. pulumiverse_scaleway/get_domain_zone.py +225 -0
  73. pulumiverse_scaleway/get_flexible_ip.py +247 -0
  74. pulumiverse_scaleway/get_flexible_ips.py +240 -0
  75. pulumiverse_scaleway/get_function.py +357 -0
  76. pulumiverse_scaleway/get_function_namespace.py +227 -0
  77. pulumiverse_scaleway/get_iam_api_key.py +210 -0
  78. pulumiverse_scaleway/get_iam_application.py +210 -0
  79. pulumiverse_scaleway/get_iam_group.py +236 -0
  80. pulumiverse_scaleway/get_iam_ssh_key.py +212 -0
  81. pulumiverse_scaleway/get_iam_user.py +157 -0
  82. pulumiverse_scaleway/get_instance_image.py +305 -0
  83. pulumiverse_scaleway/get_instance_ip.py +204 -0
  84. pulumiverse_scaleway/get_instance_placement_group.py +212 -0
  85. pulumiverse_scaleway/get_instance_private_nic.py +215 -0
  86. pulumiverse_scaleway/get_instance_security_group.py +268 -0
  87. pulumiverse_scaleway/get_instance_server.py +502 -0
  88. pulumiverse_scaleway/get_instance_servers.py +187 -0
  89. pulumiverse_scaleway/get_instance_snapshot.py +248 -0
  90. pulumiverse_scaleway/get_instance_volume.py +215 -0
  91. pulumiverse_scaleway/get_iot_device.py +257 -0
  92. pulumiverse_scaleway/get_iot_hub.py +322 -0
  93. pulumiverse_scaleway/get_ipam_ip.py +419 -0
  94. pulumiverse_scaleway/get_ipam_ips.py +358 -0
  95. pulumiverse_scaleway/get_k8s_version.py +196 -0
  96. pulumiverse_scaleway/get_kubernetes_cluster.py +417 -0
  97. pulumiverse_scaleway/get_kubernetes_node_pool.py +436 -0
  98. pulumiverse_scaleway/get_lb_acls.py +198 -0
  99. pulumiverse_scaleway/get_lb_backend.py +486 -0
  100. pulumiverse_scaleway/get_lb_backends.py +196 -0
  101. pulumiverse_scaleway/get_lb_frontend.py +274 -0
  102. pulumiverse_scaleway/get_lb_frontends.py +196 -0
  103. pulumiverse_scaleway/get_lb_ips.py +198 -0
  104. pulumiverse_scaleway/get_lb_route.py +217 -0
  105. pulumiverse_scaleway/get_lb_routes.py +179 -0
  106. pulumiverse_scaleway/get_lbs.py +187 -0
  107. pulumiverse_scaleway/get_loadbalancer.py +339 -0
  108. pulumiverse_scaleway/get_loadbalancer_certificate.py +230 -0
  109. pulumiverse_scaleway/get_loadbalancer_ip.py +222 -0
  110. pulumiverse_scaleway/get_marketplace_image.py +147 -0
  111. pulumiverse_scaleway/get_mnq_sqs.py +150 -0
  112. pulumiverse_scaleway/get_object_bucket.py +278 -0
  113. pulumiverse_scaleway/get_object_bucket_policy.py +157 -0
  114. pulumiverse_scaleway/get_redis_cluster.py +347 -0
  115. pulumiverse_scaleway/get_registry_image.py +239 -0
  116. pulumiverse_scaleway/get_registry_namespace.py +199 -0
  117. pulumiverse_scaleway/get_secret.py +290 -0
  118. pulumiverse_scaleway/get_secret_version.py +303 -0
  119. pulumiverse_scaleway/get_tem_domain.py +367 -0
  120. pulumiverse_scaleway/get_vpc.py +246 -0
  121. pulumiverse_scaleway/get_vpc_gateway_network.py +287 -0
  122. pulumiverse_scaleway/get_vpc_private_network.py +282 -0
  123. pulumiverse_scaleway/get_vpc_public_gateway.py +304 -0
  124. pulumiverse_scaleway/get_vpc_public_gateway_dhcp.py +305 -0
  125. pulumiverse_scaleway/get_vpc_public_gateway_dhcp_reservation.py +382 -0
  126. pulumiverse_scaleway/get_vpc_public_gateway_ip.py +199 -0
  127. pulumiverse_scaleway/get_vpc_public_pat_rule.py +313 -0
  128. pulumiverse_scaleway/get_vpc_routes.py +208 -0
  129. pulumiverse_scaleway/get_vpcs.py +174 -0
  130. pulumiverse_scaleway/get_web_host_offer.py +192 -0
  131. pulumiverse_scaleway/get_webhosting.py +332 -0
  132. pulumiverse_scaleway/iam_api_key.py +620 -0
  133. pulumiverse_scaleway/iam_application.py +417 -0
  134. pulumiverse_scaleway/iam_group.py +566 -0
  135. pulumiverse_scaleway/iam_group_membership.py +323 -0
  136. pulumiverse_scaleway/iam_policy.py +727 -0
  137. pulumiverse_scaleway/iam_ssh_key.py +455 -0
  138. pulumiverse_scaleway/iam_user.py +466 -0
  139. pulumiverse_scaleway/instance_image.py +750 -0
  140. pulumiverse_scaleway/instance_ip.py +483 -0
  141. pulumiverse_scaleway/instance_ip_reverse_dns.py +308 -0
  142. pulumiverse_scaleway/instance_placement_group.py +479 -0
  143. pulumiverse_scaleway/instance_private_nic.py +454 -0
  144. pulumiverse_scaleway/instance_security_group.py +720 -0
  145. pulumiverse_scaleway/instance_security_group_rules.py +439 -0
  146. pulumiverse_scaleway/instance_server.py +1907 -0
  147. pulumiverse_scaleway/instance_snapshot.py +669 -0
  148. pulumiverse_scaleway/instance_user_data.py +435 -0
  149. pulumiverse_scaleway/instance_volume.py +535 -0
  150. pulumiverse_scaleway/iot_device.py +750 -0
  151. pulumiverse_scaleway/iot_hub.py +896 -0
  152. pulumiverse_scaleway/iot_network.py +425 -0
  153. pulumiverse_scaleway/iot_route.py +660 -0
  154. pulumiverse_scaleway/ipam_ip.py +666 -0
  155. pulumiverse_scaleway/ipam_ip_reverse_dns.py +318 -0
  156. pulumiverse_scaleway/job_definition.py +692 -0
  157. pulumiverse_scaleway/kubernetes_cluster.py +1538 -0
  158. pulumiverse_scaleway/kubernetes_node_pool.py +1255 -0
  159. pulumiverse_scaleway/loadbalancer.py +1095 -0
  160. pulumiverse_scaleway/loadbalancer_acl.py +520 -0
  161. pulumiverse_scaleway/loadbalancer_backend.py +1588 -0
  162. pulumiverse_scaleway/loadbalancer_certificate.py +460 -0
  163. pulumiverse_scaleway/loadbalancer_frontend.py +829 -0
  164. pulumiverse_scaleway/loadbalancer_ip.py +514 -0
  165. pulumiverse_scaleway/loadbalancer_route.py +523 -0
  166. pulumiverse_scaleway/mnq_nats_account.py +334 -0
  167. pulumiverse_scaleway/mnq_nats_credentials.py +328 -0
  168. pulumiverse_scaleway/mnq_sns.py +306 -0
  169. pulumiverse_scaleway/mnq_sns_credentials.py +413 -0
  170. pulumiverse_scaleway/mnq_sns_topic.py +659 -0
  171. pulumiverse_scaleway/mnq_sns_topic_subscription.py +699 -0
  172. pulumiverse_scaleway/mnq_sqs.py +304 -0
  173. pulumiverse_scaleway/mnq_sqs_credentials.py +413 -0
  174. pulumiverse_scaleway/mnq_sqs_queue.py +800 -0
  175. pulumiverse_scaleway/object_bucket.py +888 -0
  176. pulumiverse_scaleway/object_bucket_acl.py +592 -0
  177. pulumiverse_scaleway/object_bucket_lock_configuration.py +393 -0
  178. pulumiverse_scaleway/object_bucket_policy.py +671 -0
  179. pulumiverse_scaleway/object_bucket_website_configuration.py +532 -0
  180. pulumiverse_scaleway/object_item.py +711 -0
  181. pulumiverse_scaleway/outputs.py +11663 -0
  182. pulumiverse_scaleway/provider.py +327 -0
  183. pulumiverse_scaleway/pulumi-plugin.json +6 -0
  184. pulumiverse_scaleway/py.typed +0 -0
  185. pulumiverse_scaleway/redis_cluster.py +1166 -0
  186. pulumiverse_scaleway/registry_namespace.py +458 -0
  187. pulumiverse_scaleway/sdb_database.py +428 -0
  188. pulumiverse_scaleway/secret.py +560 -0
  189. pulumiverse_scaleway/secret_version.py +482 -0
  190. pulumiverse_scaleway/tem_domain.py +950 -0
  191. pulumiverse_scaleway/tem_domain_validation.py +303 -0
  192. pulumiverse_scaleway/vpc.py +536 -0
  193. pulumiverse_scaleway/vpc_gateway_network.py +866 -0
  194. pulumiverse_scaleway/vpc_private_network.py +734 -0
  195. pulumiverse_scaleway/vpc_public_gateway.py +789 -0
  196. pulumiverse_scaleway/vpc_public_gateway_dhcp.py +933 -0
  197. pulumiverse_scaleway/vpc_public_gateway_dhcp_reservation.py +514 -0
  198. pulumiverse_scaleway/vpc_public_gateway_ip.py +457 -0
  199. pulumiverse_scaleway/vpc_public_gateway_ip_reverse_dns.py +306 -0
  200. pulumiverse_scaleway/vpc_public_gateway_pat_rule.py +591 -0
  201. pulumiverse_scaleway/webhosting.py +805 -0
  202. pulumiverse_scaleway-1.16.0.dist-info/METADATA +69 -0
  203. pulumiverse_scaleway-1.16.0.dist-info/RECORD +205 -0
  204. pulumiverse_scaleway-1.16.0.dist-info/WHEEL +5 -0
  205. pulumiverse_scaleway-1.16.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,393 @@
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
+ from . import outputs
17
+ from ._inputs import *
18
+
19
+ __all__ = ['ObjectBucketLockConfigurationArgs', 'ObjectBucketLockConfiguration']
20
+
21
+ @pulumi.input_type
22
+ class ObjectBucketLockConfigurationArgs:
23
+ def __init__(__self__, *,
24
+ bucket: pulumi.Input[str],
25
+ rule: pulumi.Input['ObjectBucketLockConfigurationRuleArgs'],
26
+ project_id: Optional[pulumi.Input[str]] = None,
27
+ region: Optional[pulumi.Input[str]] = None):
28
+ """
29
+ The set of arguments for constructing a ObjectBucketLockConfiguration resource.
30
+ :param pulumi.Input[str] bucket: The bucket's name or regional ID.
31
+ :param pulumi.Input['ObjectBucketLockConfigurationRuleArgs'] rule: Specifies the Object Lock rule for the specified object.
32
+ :param pulumi.Input[str] project_id: The project_id you want to attach the resource to
33
+ :param pulumi.Input[str] region: The region you want to attach the resource to
34
+ """
35
+ pulumi.set(__self__, "bucket", bucket)
36
+ pulumi.set(__self__, "rule", rule)
37
+ if project_id is not None:
38
+ pulumi.set(__self__, "project_id", project_id)
39
+ if region is not None:
40
+ pulumi.set(__self__, "region", region)
41
+
42
+ @property
43
+ @pulumi.getter
44
+ def bucket(self) -> pulumi.Input[str]:
45
+ """
46
+ The bucket's name or regional ID.
47
+ """
48
+ return pulumi.get(self, "bucket")
49
+
50
+ @bucket.setter
51
+ def bucket(self, value: pulumi.Input[str]):
52
+ pulumi.set(self, "bucket", value)
53
+
54
+ @property
55
+ @pulumi.getter
56
+ def rule(self) -> pulumi.Input['ObjectBucketLockConfigurationRuleArgs']:
57
+ """
58
+ Specifies the Object Lock rule for the specified object.
59
+ """
60
+ return pulumi.get(self, "rule")
61
+
62
+ @rule.setter
63
+ def rule(self, value: pulumi.Input['ObjectBucketLockConfigurationRuleArgs']):
64
+ pulumi.set(self, "rule", value)
65
+
66
+ @property
67
+ @pulumi.getter(name="projectId")
68
+ def project_id(self) -> Optional[pulumi.Input[str]]:
69
+ """
70
+ The project_id you want to attach the resource to
71
+ """
72
+ return pulumi.get(self, "project_id")
73
+
74
+ @project_id.setter
75
+ def project_id(self, value: Optional[pulumi.Input[str]]):
76
+ pulumi.set(self, "project_id", value)
77
+
78
+ @property
79
+ @pulumi.getter
80
+ def region(self) -> Optional[pulumi.Input[str]]:
81
+ """
82
+ The region you want to attach the resource to
83
+ """
84
+ return pulumi.get(self, "region")
85
+
86
+ @region.setter
87
+ def region(self, value: Optional[pulumi.Input[str]]):
88
+ pulumi.set(self, "region", value)
89
+
90
+
91
+ @pulumi.input_type
92
+ class _ObjectBucketLockConfigurationState:
93
+ def __init__(__self__, *,
94
+ bucket: Optional[pulumi.Input[str]] = None,
95
+ project_id: Optional[pulumi.Input[str]] = None,
96
+ region: Optional[pulumi.Input[str]] = None,
97
+ rule: Optional[pulumi.Input['ObjectBucketLockConfigurationRuleArgs']] = None):
98
+ """
99
+ Input properties used for looking up and filtering ObjectBucketLockConfiguration resources.
100
+ :param pulumi.Input[str] bucket: The bucket's name or regional ID.
101
+ :param pulumi.Input[str] project_id: The project_id you want to attach the resource to
102
+ :param pulumi.Input[str] region: The region you want to attach the resource to
103
+ :param pulumi.Input['ObjectBucketLockConfigurationRuleArgs'] rule: Specifies the Object Lock rule for the specified object.
104
+ """
105
+ if bucket is not None:
106
+ pulumi.set(__self__, "bucket", bucket)
107
+ if project_id is not None:
108
+ pulumi.set(__self__, "project_id", project_id)
109
+ if region is not None:
110
+ pulumi.set(__self__, "region", region)
111
+ if rule is not None:
112
+ pulumi.set(__self__, "rule", rule)
113
+
114
+ @property
115
+ @pulumi.getter
116
+ def bucket(self) -> Optional[pulumi.Input[str]]:
117
+ """
118
+ The bucket's name or regional ID.
119
+ """
120
+ return pulumi.get(self, "bucket")
121
+
122
+ @bucket.setter
123
+ def bucket(self, value: Optional[pulumi.Input[str]]):
124
+ pulumi.set(self, "bucket", value)
125
+
126
+ @property
127
+ @pulumi.getter(name="projectId")
128
+ def project_id(self) -> Optional[pulumi.Input[str]]:
129
+ """
130
+ The project_id you want to attach the resource to
131
+ """
132
+ return pulumi.get(self, "project_id")
133
+
134
+ @project_id.setter
135
+ def project_id(self, value: Optional[pulumi.Input[str]]):
136
+ pulumi.set(self, "project_id", value)
137
+
138
+ @property
139
+ @pulumi.getter
140
+ def region(self) -> Optional[pulumi.Input[str]]:
141
+ """
142
+ The region you want to attach the resource to
143
+ """
144
+ return pulumi.get(self, "region")
145
+
146
+ @region.setter
147
+ def region(self, value: Optional[pulumi.Input[str]]):
148
+ pulumi.set(self, "region", value)
149
+
150
+ @property
151
+ @pulumi.getter
152
+ def rule(self) -> Optional[pulumi.Input['ObjectBucketLockConfigurationRuleArgs']]:
153
+ """
154
+ Specifies the Object Lock rule for the specified object.
155
+ """
156
+ return pulumi.get(self, "rule")
157
+
158
+ @rule.setter
159
+ def rule(self, value: Optional[pulumi.Input['ObjectBucketLockConfigurationRuleArgs']]):
160
+ pulumi.set(self, "rule", value)
161
+
162
+
163
+ class ObjectBucketLockConfiguration(pulumi.CustomResource):
164
+ @overload
165
+ def __init__(__self__,
166
+ resource_name: str,
167
+ opts: Optional[pulumi.ResourceOptions] = None,
168
+ bucket: Optional[pulumi.Input[str]] = None,
169
+ project_id: Optional[pulumi.Input[str]] = None,
170
+ region: Optional[pulumi.Input[str]] = None,
171
+ rule: Optional[pulumi.Input[Union['ObjectBucketLockConfigurationRuleArgs', 'ObjectBucketLockConfigurationRuleArgsDict']]] = None,
172
+ __props__=None):
173
+ """
174
+ Provides an Object bucket lock configuration resource.
175
+ For more information, see [Setting up object lock](https://www.scaleway.com/en/docs/storage/object/api-cli/object-lock/).
176
+
177
+ ## Example Usage
178
+
179
+ ### Configure an Object Lock for a new bucket
180
+
181
+ Please note that `object_lock_enabled` must be set to `true` before configuring the lock.
182
+
183
+ ```python
184
+ import pulumi
185
+ import pulumiverse_scaleway as scaleway
186
+
187
+ main = scaleway.ObjectBucket("main",
188
+ name="MyBucket",
189
+ acl="public-read",
190
+ object_lock_enabled=True)
191
+ main_object_bucket_lock_configuration = scaleway.ObjectBucketLockConfiguration("main",
192
+ bucket=main.name,
193
+ rule={
194
+ "default_retention": {
195
+ "mode": "GOVERNANCE",
196
+ "days": 1,
197
+ },
198
+ })
199
+ ```
200
+
201
+ ### Configure an Object Lock for an existing bucket
202
+
203
+ You should [contact Scaleway support](https://console.scaleway.com/support/tickets/create) to enable object lock on an existing bucket.
204
+
205
+ ## Import
206
+
207
+ Bucket lock configurations can be imported using the `{region}/{bucketName}` identifier, e.g.
208
+
209
+ bash
210
+
211
+ ```sh
212
+ $ pulumi import scaleway:index/objectBucketLockConfiguration:ObjectBucketLockConfiguration some_bucket fr-par/some-bucket
213
+ ```
214
+
215
+ ~> **Important:** The `project_id` attribute has a particular behavior with s3 products because the s3 API is scoped by project.
216
+
217
+ If you are using a project different from the default one, you have to specify the project ID at the end of the import command.
218
+
219
+ bash
220
+
221
+ ```sh
222
+ $ pulumi import scaleway:index/objectBucketLockConfiguration:ObjectBucketLockConfiguration some_bucket fr-par/some-bucket@xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx
223
+ ```
224
+
225
+ :param str resource_name: The name of the resource.
226
+ :param pulumi.ResourceOptions opts: Options for the resource.
227
+ :param pulumi.Input[str] bucket: The bucket's name or regional ID.
228
+ :param pulumi.Input[str] project_id: The project_id you want to attach the resource to
229
+ :param pulumi.Input[str] region: The region you want to attach the resource to
230
+ :param pulumi.Input[Union['ObjectBucketLockConfigurationRuleArgs', 'ObjectBucketLockConfigurationRuleArgsDict']] rule: Specifies the Object Lock rule for the specified object.
231
+ """
232
+ ...
233
+ @overload
234
+ def __init__(__self__,
235
+ resource_name: str,
236
+ args: ObjectBucketLockConfigurationArgs,
237
+ opts: Optional[pulumi.ResourceOptions] = None):
238
+ """
239
+ Provides an Object bucket lock configuration resource.
240
+ For more information, see [Setting up object lock](https://www.scaleway.com/en/docs/storage/object/api-cli/object-lock/).
241
+
242
+ ## Example Usage
243
+
244
+ ### Configure an Object Lock for a new bucket
245
+
246
+ Please note that `object_lock_enabled` must be set to `true` before configuring the lock.
247
+
248
+ ```python
249
+ import pulumi
250
+ import pulumiverse_scaleway as scaleway
251
+
252
+ main = scaleway.ObjectBucket("main",
253
+ name="MyBucket",
254
+ acl="public-read",
255
+ object_lock_enabled=True)
256
+ main_object_bucket_lock_configuration = scaleway.ObjectBucketLockConfiguration("main",
257
+ bucket=main.name,
258
+ rule={
259
+ "default_retention": {
260
+ "mode": "GOVERNANCE",
261
+ "days": 1,
262
+ },
263
+ })
264
+ ```
265
+
266
+ ### Configure an Object Lock for an existing bucket
267
+
268
+ You should [contact Scaleway support](https://console.scaleway.com/support/tickets/create) to enable object lock on an existing bucket.
269
+
270
+ ## Import
271
+
272
+ Bucket lock configurations can be imported using the `{region}/{bucketName}` identifier, e.g.
273
+
274
+ bash
275
+
276
+ ```sh
277
+ $ pulumi import scaleway:index/objectBucketLockConfiguration:ObjectBucketLockConfiguration some_bucket fr-par/some-bucket
278
+ ```
279
+
280
+ ~> **Important:** The `project_id` attribute has a particular behavior with s3 products because the s3 API is scoped by project.
281
+
282
+ If you are using a project different from the default one, you have to specify the project ID at the end of the import command.
283
+
284
+ bash
285
+
286
+ ```sh
287
+ $ pulumi import scaleway:index/objectBucketLockConfiguration:ObjectBucketLockConfiguration some_bucket fr-par/some-bucket@xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx
288
+ ```
289
+
290
+ :param str resource_name: The name of the resource.
291
+ :param ObjectBucketLockConfigurationArgs args: The arguments to use to populate this resource's properties.
292
+ :param pulumi.ResourceOptions opts: Options for the resource.
293
+ """
294
+ ...
295
+ def __init__(__self__, resource_name: str, *args, **kwargs):
296
+ resource_args, opts = _utilities.get_resource_args_opts(ObjectBucketLockConfigurationArgs, pulumi.ResourceOptions, *args, **kwargs)
297
+ if resource_args is not None:
298
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
299
+ else:
300
+ __self__._internal_init(resource_name, *args, **kwargs)
301
+
302
+ def _internal_init(__self__,
303
+ resource_name: str,
304
+ opts: Optional[pulumi.ResourceOptions] = None,
305
+ bucket: Optional[pulumi.Input[str]] = None,
306
+ project_id: Optional[pulumi.Input[str]] = None,
307
+ region: Optional[pulumi.Input[str]] = None,
308
+ rule: Optional[pulumi.Input[Union['ObjectBucketLockConfigurationRuleArgs', 'ObjectBucketLockConfigurationRuleArgsDict']]] = None,
309
+ __props__=None):
310
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
311
+ if not isinstance(opts, pulumi.ResourceOptions):
312
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
313
+ if opts.id is None:
314
+ if __props__ is not None:
315
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
316
+ __props__ = ObjectBucketLockConfigurationArgs.__new__(ObjectBucketLockConfigurationArgs)
317
+
318
+ if bucket is None and not opts.urn:
319
+ raise TypeError("Missing required property 'bucket'")
320
+ __props__.__dict__["bucket"] = bucket
321
+ __props__.__dict__["project_id"] = project_id
322
+ __props__.__dict__["region"] = region
323
+ if rule is None and not opts.urn:
324
+ raise TypeError("Missing required property 'rule'")
325
+ __props__.__dict__["rule"] = rule
326
+ super(ObjectBucketLockConfiguration, __self__).__init__(
327
+ 'scaleway:index/objectBucketLockConfiguration:ObjectBucketLockConfiguration',
328
+ resource_name,
329
+ __props__,
330
+ opts)
331
+
332
+ @staticmethod
333
+ def get(resource_name: str,
334
+ id: pulumi.Input[str],
335
+ opts: Optional[pulumi.ResourceOptions] = None,
336
+ bucket: Optional[pulumi.Input[str]] = None,
337
+ project_id: Optional[pulumi.Input[str]] = None,
338
+ region: Optional[pulumi.Input[str]] = None,
339
+ rule: Optional[pulumi.Input[Union['ObjectBucketLockConfigurationRuleArgs', 'ObjectBucketLockConfigurationRuleArgsDict']]] = None) -> 'ObjectBucketLockConfiguration':
340
+ """
341
+ Get an existing ObjectBucketLockConfiguration resource's state with the given name, id, and optional extra
342
+ properties used to qualify the lookup.
343
+
344
+ :param str resource_name: The unique name of the resulting resource.
345
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
346
+ :param pulumi.ResourceOptions opts: Options for the resource.
347
+ :param pulumi.Input[str] bucket: The bucket's name or regional ID.
348
+ :param pulumi.Input[str] project_id: The project_id you want to attach the resource to
349
+ :param pulumi.Input[str] region: The region you want to attach the resource to
350
+ :param pulumi.Input[Union['ObjectBucketLockConfigurationRuleArgs', 'ObjectBucketLockConfigurationRuleArgsDict']] rule: Specifies the Object Lock rule for the specified object.
351
+ """
352
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
353
+
354
+ __props__ = _ObjectBucketLockConfigurationState.__new__(_ObjectBucketLockConfigurationState)
355
+
356
+ __props__.__dict__["bucket"] = bucket
357
+ __props__.__dict__["project_id"] = project_id
358
+ __props__.__dict__["region"] = region
359
+ __props__.__dict__["rule"] = rule
360
+ return ObjectBucketLockConfiguration(resource_name, opts=opts, __props__=__props__)
361
+
362
+ @property
363
+ @pulumi.getter
364
+ def bucket(self) -> pulumi.Output[str]:
365
+ """
366
+ The bucket's name or regional ID.
367
+ """
368
+ return pulumi.get(self, "bucket")
369
+
370
+ @property
371
+ @pulumi.getter(name="projectId")
372
+ def project_id(self) -> pulumi.Output[str]:
373
+ """
374
+ The project_id you want to attach the resource to
375
+ """
376
+ return pulumi.get(self, "project_id")
377
+
378
+ @property
379
+ @pulumi.getter
380
+ def region(self) -> pulumi.Output[str]:
381
+ """
382
+ The region you want to attach the resource to
383
+ """
384
+ return pulumi.get(self, "region")
385
+
386
+ @property
387
+ @pulumi.getter
388
+ def rule(self) -> pulumi.Output['outputs.ObjectBucketLockConfigurationRule']:
389
+ """
390
+ Specifies the Object Lock rule for the specified object.
391
+ """
392
+ return pulumi.get(self, "rule")
393
+