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,401 @@
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__ = ['BlockSnapshotArgs', 'BlockSnapshot']
18
+
19
+ @pulumi.input_type
20
+ class BlockSnapshotArgs:
21
+ def __init__(__self__, *,
22
+ volume_id: pulumi.Input[str],
23
+ name: Optional[pulumi.Input[str]] = None,
24
+ project_id: Optional[pulumi.Input[str]] = None,
25
+ tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
26
+ zone: Optional[pulumi.Input[str]] = None):
27
+ """
28
+ The set of arguments for constructing a BlockSnapshot resource.
29
+ :param pulumi.Input[str] volume_id: The ID of the volume to take a snapshot from.
30
+ :param pulumi.Input[str] name: The name of the snapshot. If not provided, a name will be randomly generated.
31
+ :param pulumi.Input[str] project_id: ). The ID of the Scaleway Project the snapshot is associated with.
32
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: A list of tags to apply to the snapshot.
33
+ :param pulumi.Input[str] zone: ). The zone in which the snapshot should be created.
34
+ """
35
+ pulumi.set(__self__, "volume_id", volume_id)
36
+ if name is not None:
37
+ pulumi.set(__self__, "name", name)
38
+ if project_id is not None:
39
+ pulumi.set(__self__, "project_id", project_id)
40
+ if tags is not None:
41
+ pulumi.set(__self__, "tags", tags)
42
+ if zone is not None:
43
+ pulumi.set(__self__, "zone", zone)
44
+
45
+ @property
46
+ @pulumi.getter(name="volumeId")
47
+ def volume_id(self) -> pulumi.Input[str]:
48
+ """
49
+ The ID of the volume to take a snapshot from.
50
+ """
51
+ return pulumi.get(self, "volume_id")
52
+
53
+ @volume_id.setter
54
+ def volume_id(self, value: pulumi.Input[str]):
55
+ pulumi.set(self, "volume_id", value)
56
+
57
+ @property
58
+ @pulumi.getter
59
+ def name(self) -> Optional[pulumi.Input[str]]:
60
+ """
61
+ The name of the snapshot. If not provided, a name will be randomly generated.
62
+ """
63
+ return pulumi.get(self, "name")
64
+
65
+ @name.setter
66
+ def name(self, value: Optional[pulumi.Input[str]]):
67
+ pulumi.set(self, "name", value)
68
+
69
+ @property
70
+ @pulumi.getter(name="projectId")
71
+ def project_id(self) -> Optional[pulumi.Input[str]]:
72
+ """
73
+ ). The ID of the Scaleway Project the snapshot is associated with.
74
+ """
75
+ return pulumi.get(self, "project_id")
76
+
77
+ @project_id.setter
78
+ def project_id(self, value: Optional[pulumi.Input[str]]):
79
+ pulumi.set(self, "project_id", value)
80
+
81
+ @property
82
+ @pulumi.getter
83
+ def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
84
+ """
85
+ A list of tags to apply to the snapshot.
86
+ """
87
+ return pulumi.get(self, "tags")
88
+
89
+ @tags.setter
90
+ def tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
91
+ pulumi.set(self, "tags", value)
92
+
93
+ @property
94
+ @pulumi.getter
95
+ def zone(self) -> Optional[pulumi.Input[str]]:
96
+ """
97
+ ). The zone in which the snapshot should be created.
98
+ """
99
+ return pulumi.get(self, "zone")
100
+
101
+ @zone.setter
102
+ def zone(self, value: Optional[pulumi.Input[str]]):
103
+ pulumi.set(self, "zone", value)
104
+
105
+
106
+ @pulumi.input_type
107
+ class _BlockSnapshotState:
108
+ def __init__(__self__, *,
109
+ name: Optional[pulumi.Input[str]] = None,
110
+ project_id: Optional[pulumi.Input[str]] = None,
111
+ tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
112
+ volume_id: Optional[pulumi.Input[str]] = None,
113
+ zone: Optional[pulumi.Input[str]] = None):
114
+ """
115
+ Input properties used for looking up and filtering BlockSnapshot resources.
116
+ :param pulumi.Input[str] name: The name of the snapshot. If not provided, a name will be randomly generated.
117
+ :param pulumi.Input[str] project_id: ). The ID of the Scaleway Project the snapshot is associated with.
118
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: A list of tags to apply to the snapshot.
119
+ :param pulumi.Input[str] volume_id: The ID of the volume to take a snapshot from.
120
+ :param pulumi.Input[str] zone: ). The zone in which the snapshot should be created.
121
+ """
122
+ if name is not None:
123
+ pulumi.set(__self__, "name", name)
124
+ if project_id is not None:
125
+ pulumi.set(__self__, "project_id", project_id)
126
+ if tags is not None:
127
+ pulumi.set(__self__, "tags", tags)
128
+ if volume_id is not None:
129
+ pulumi.set(__self__, "volume_id", volume_id)
130
+ if zone is not None:
131
+ pulumi.set(__self__, "zone", zone)
132
+
133
+ @property
134
+ @pulumi.getter
135
+ def name(self) -> Optional[pulumi.Input[str]]:
136
+ """
137
+ The name of the snapshot. If not provided, a name will be randomly generated.
138
+ """
139
+ return pulumi.get(self, "name")
140
+
141
+ @name.setter
142
+ def name(self, value: Optional[pulumi.Input[str]]):
143
+ pulumi.set(self, "name", value)
144
+
145
+ @property
146
+ @pulumi.getter(name="projectId")
147
+ def project_id(self) -> Optional[pulumi.Input[str]]:
148
+ """
149
+ ). The ID of the Scaleway Project the snapshot is associated with.
150
+ """
151
+ return pulumi.get(self, "project_id")
152
+
153
+ @project_id.setter
154
+ def project_id(self, value: Optional[pulumi.Input[str]]):
155
+ pulumi.set(self, "project_id", value)
156
+
157
+ @property
158
+ @pulumi.getter
159
+ def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
160
+ """
161
+ A list of tags to apply to the snapshot.
162
+ """
163
+ return pulumi.get(self, "tags")
164
+
165
+ @tags.setter
166
+ def tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
167
+ pulumi.set(self, "tags", value)
168
+
169
+ @property
170
+ @pulumi.getter(name="volumeId")
171
+ def volume_id(self) -> Optional[pulumi.Input[str]]:
172
+ """
173
+ The ID of the volume to take a snapshot from.
174
+ """
175
+ return pulumi.get(self, "volume_id")
176
+
177
+ @volume_id.setter
178
+ def volume_id(self, value: Optional[pulumi.Input[str]]):
179
+ pulumi.set(self, "volume_id", value)
180
+
181
+ @property
182
+ @pulumi.getter
183
+ def zone(self) -> Optional[pulumi.Input[str]]:
184
+ """
185
+ ). The zone in which the snapshot should be created.
186
+ """
187
+ return pulumi.get(self, "zone")
188
+
189
+ @zone.setter
190
+ def zone(self, value: Optional[pulumi.Input[str]]):
191
+ pulumi.set(self, "zone", value)
192
+
193
+
194
+ class BlockSnapshot(pulumi.CustomResource):
195
+ @overload
196
+ def __init__(__self__,
197
+ resource_name: str,
198
+ opts: Optional[pulumi.ResourceOptions] = None,
199
+ name: Optional[pulumi.Input[str]] = None,
200
+ project_id: Optional[pulumi.Input[str]] = None,
201
+ tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
202
+ volume_id: Optional[pulumi.Input[str]] = None,
203
+ zone: Optional[pulumi.Input[str]] = None,
204
+ __props__=None):
205
+ """
206
+ The `BlockSnapshot` resource is used to create and manage snapshots of Block Storage volumes.
207
+
208
+ Refer to the Block Storage [product documentation](https://www.scaleway.com/en/docs/storage/block/) and [API documentation](https://www.scaleway.com/en/developers/api/block/) for more information.
209
+
210
+ ## Example Usage
211
+
212
+ ### Create a snapshot of a Block Storage volume
213
+
214
+ The following command allows you to create a snapshot (`some-snapshot-name`) from a Block Storage volume specified by its ID.
215
+
216
+ ```python
217
+ import pulumi
218
+ import pulumiverse_scaleway as scaleway
219
+
220
+ block_volume = scaleway.BlockVolume("block_volume",
221
+ iops=5000,
222
+ name="some-volume-name",
223
+ size_in_gb=20)
224
+ block_snapshot = scaleway.BlockSnapshot("block_snapshot",
225
+ name="some-snapshot-name",
226
+ volume_id=block_volume.id)
227
+ ```
228
+
229
+ ## Import
230
+
231
+ This section explains how to import the snapshot of a Block Storage volume using the zoned ID format (`{zone}/{id}`).
232
+
233
+ bash
234
+
235
+ ```sh
236
+ $ pulumi import scaleway:index/blockSnapshot:BlockSnapshot main fr-par-1/11111111-1111-1111-1111-111111111111
237
+ ```
238
+
239
+ :param str resource_name: The name of the resource.
240
+ :param pulumi.ResourceOptions opts: Options for the resource.
241
+ :param pulumi.Input[str] name: The name of the snapshot. If not provided, a name will be randomly generated.
242
+ :param pulumi.Input[str] project_id: ). The ID of the Scaleway Project the snapshot is associated with.
243
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: A list of tags to apply to the snapshot.
244
+ :param pulumi.Input[str] volume_id: The ID of the volume to take a snapshot from.
245
+ :param pulumi.Input[str] zone: ). The zone in which the snapshot should be created.
246
+ """
247
+ ...
248
+ @overload
249
+ def __init__(__self__,
250
+ resource_name: str,
251
+ args: BlockSnapshotArgs,
252
+ opts: Optional[pulumi.ResourceOptions] = None):
253
+ """
254
+ The `BlockSnapshot` resource is used to create and manage snapshots of Block Storage volumes.
255
+
256
+ Refer to the Block Storage [product documentation](https://www.scaleway.com/en/docs/storage/block/) and [API documentation](https://www.scaleway.com/en/developers/api/block/) for more information.
257
+
258
+ ## Example Usage
259
+
260
+ ### Create a snapshot of a Block Storage volume
261
+
262
+ The following command allows you to create a snapshot (`some-snapshot-name`) from a Block Storage volume specified by its ID.
263
+
264
+ ```python
265
+ import pulumi
266
+ import pulumiverse_scaleway as scaleway
267
+
268
+ block_volume = scaleway.BlockVolume("block_volume",
269
+ iops=5000,
270
+ name="some-volume-name",
271
+ size_in_gb=20)
272
+ block_snapshot = scaleway.BlockSnapshot("block_snapshot",
273
+ name="some-snapshot-name",
274
+ volume_id=block_volume.id)
275
+ ```
276
+
277
+ ## Import
278
+
279
+ This section explains how to import the snapshot of a Block Storage volume using the zoned ID format (`{zone}/{id}`).
280
+
281
+ bash
282
+
283
+ ```sh
284
+ $ pulumi import scaleway:index/blockSnapshot:BlockSnapshot main fr-par-1/11111111-1111-1111-1111-111111111111
285
+ ```
286
+
287
+ :param str resource_name: The name of the resource.
288
+ :param BlockSnapshotArgs args: The arguments to use to populate this resource's properties.
289
+ :param pulumi.ResourceOptions opts: Options for the resource.
290
+ """
291
+ ...
292
+ def __init__(__self__, resource_name: str, *args, **kwargs):
293
+ resource_args, opts = _utilities.get_resource_args_opts(BlockSnapshotArgs, pulumi.ResourceOptions, *args, **kwargs)
294
+ if resource_args is not None:
295
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
296
+ else:
297
+ __self__._internal_init(resource_name, *args, **kwargs)
298
+
299
+ def _internal_init(__self__,
300
+ resource_name: str,
301
+ opts: Optional[pulumi.ResourceOptions] = None,
302
+ name: Optional[pulumi.Input[str]] = None,
303
+ project_id: Optional[pulumi.Input[str]] = None,
304
+ tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
305
+ volume_id: Optional[pulumi.Input[str]] = None,
306
+ zone: Optional[pulumi.Input[str]] = None,
307
+ __props__=None):
308
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
309
+ if not isinstance(opts, pulumi.ResourceOptions):
310
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
311
+ if opts.id is None:
312
+ if __props__ is not None:
313
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
314
+ __props__ = BlockSnapshotArgs.__new__(BlockSnapshotArgs)
315
+
316
+ __props__.__dict__["name"] = name
317
+ __props__.__dict__["project_id"] = project_id
318
+ __props__.__dict__["tags"] = tags
319
+ if volume_id is None and not opts.urn:
320
+ raise TypeError("Missing required property 'volume_id'")
321
+ __props__.__dict__["volume_id"] = volume_id
322
+ __props__.__dict__["zone"] = zone
323
+ super(BlockSnapshot, __self__).__init__(
324
+ 'scaleway:index/blockSnapshot:BlockSnapshot',
325
+ resource_name,
326
+ __props__,
327
+ opts)
328
+
329
+ @staticmethod
330
+ def get(resource_name: str,
331
+ id: pulumi.Input[str],
332
+ opts: Optional[pulumi.ResourceOptions] = None,
333
+ name: Optional[pulumi.Input[str]] = None,
334
+ project_id: Optional[pulumi.Input[str]] = None,
335
+ tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
336
+ volume_id: Optional[pulumi.Input[str]] = None,
337
+ zone: Optional[pulumi.Input[str]] = None) -> 'BlockSnapshot':
338
+ """
339
+ Get an existing BlockSnapshot resource's state with the given name, id, and optional extra
340
+ properties used to qualify the lookup.
341
+
342
+ :param str resource_name: The unique name of the resulting resource.
343
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
344
+ :param pulumi.ResourceOptions opts: Options for the resource.
345
+ :param pulumi.Input[str] name: The name of the snapshot. If not provided, a name will be randomly generated.
346
+ :param pulumi.Input[str] project_id: ). The ID of the Scaleway Project the snapshot is associated with.
347
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: A list of tags to apply to the snapshot.
348
+ :param pulumi.Input[str] volume_id: The ID of the volume to take a snapshot from.
349
+ :param pulumi.Input[str] zone: ). The zone in which the snapshot should be created.
350
+ """
351
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
352
+
353
+ __props__ = _BlockSnapshotState.__new__(_BlockSnapshotState)
354
+
355
+ __props__.__dict__["name"] = name
356
+ __props__.__dict__["project_id"] = project_id
357
+ __props__.__dict__["tags"] = tags
358
+ __props__.__dict__["volume_id"] = volume_id
359
+ __props__.__dict__["zone"] = zone
360
+ return BlockSnapshot(resource_name, opts=opts, __props__=__props__)
361
+
362
+ @property
363
+ @pulumi.getter
364
+ def name(self) -> pulumi.Output[str]:
365
+ """
366
+ The name of the snapshot. If not provided, a name will be randomly generated.
367
+ """
368
+ return pulumi.get(self, "name")
369
+
370
+ @property
371
+ @pulumi.getter(name="projectId")
372
+ def project_id(self) -> pulumi.Output[str]:
373
+ """
374
+ ). The ID of the Scaleway Project the snapshot is associated with.
375
+ """
376
+ return pulumi.get(self, "project_id")
377
+
378
+ @property
379
+ @pulumi.getter
380
+ def tags(self) -> pulumi.Output[Optional[Sequence[str]]]:
381
+ """
382
+ A list of tags to apply to the snapshot.
383
+ """
384
+ return pulumi.get(self, "tags")
385
+
386
+ @property
387
+ @pulumi.getter(name="volumeId")
388
+ def volume_id(self) -> pulumi.Output[str]:
389
+ """
390
+ The ID of the volume to take a snapshot from.
391
+ """
392
+ return pulumi.get(self, "volume_id")
393
+
394
+ @property
395
+ @pulumi.getter
396
+ def zone(self) -> pulumi.Output[str]:
397
+ """
398
+ ). The zone in which the snapshot should be created.
399
+ """
400
+ return pulumi.get(self, "zone")
401
+