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,521 @@
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__ = ['BlockVolumeArgs', 'BlockVolume']
18
+
19
+ @pulumi.input_type
20
+ class BlockVolumeArgs:
21
+ def __init__(__self__, *,
22
+ iops: pulumi.Input[int],
23
+ name: Optional[pulumi.Input[str]] = None,
24
+ project_id: Optional[pulumi.Input[str]] = None,
25
+ size_in_gb: Optional[pulumi.Input[int]] = None,
26
+ snapshot_id: Optional[pulumi.Input[str]] = None,
27
+ tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
28
+ zone: Optional[pulumi.Input[str]] = None):
29
+ """
30
+ The set of arguments for constructing a BlockVolume resource.
31
+ :param pulumi.Input[int] iops: The maximum IO/s expected, must match available options.
32
+ :param pulumi.Input[str] name: The name of the volume. If not provided it will be randomly generated.
33
+ :param pulumi.Input[str] project_id: `project_id`) The ID of the project the volume is associated with.
34
+ :param pulumi.Input[int] size_in_gb: The size of the volume. Only one of `size_in_gb`, and `snapshot_id` should be specified.
35
+ :param pulumi.Input[str] snapshot_id: If set, the new volume will be created from this snapshot. Only one of `size_in_gb`, `snapshot_id` should be specified.
36
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: A list of tags to apply to the volume.
37
+ :param pulumi.Input[str] zone: `zone`) The zone in which the volume should be created.
38
+ """
39
+ pulumi.set(__self__, "iops", iops)
40
+ if name is not None:
41
+ pulumi.set(__self__, "name", name)
42
+ if project_id is not None:
43
+ pulumi.set(__self__, "project_id", project_id)
44
+ if size_in_gb is not None:
45
+ pulumi.set(__self__, "size_in_gb", size_in_gb)
46
+ if snapshot_id is not None:
47
+ pulumi.set(__self__, "snapshot_id", snapshot_id)
48
+ if tags is not None:
49
+ pulumi.set(__self__, "tags", tags)
50
+ if zone is not None:
51
+ pulumi.set(__self__, "zone", zone)
52
+
53
+ @property
54
+ @pulumi.getter
55
+ def iops(self) -> pulumi.Input[int]:
56
+ """
57
+ The maximum IO/s expected, must match available options.
58
+ """
59
+ return pulumi.get(self, "iops")
60
+
61
+ @iops.setter
62
+ def iops(self, value: pulumi.Input[int]):
63
+ pulumi.set(self, "iops", value)
64
+
65
+ @property
66
+ @pulumi.getter
67
+ def name(self) -> Optional[pulumi.Input[str]]:
68
+ """
69
+ The name of the volume. If not provided it will be randomly generated.
70
+ """
71
+ return pulumi.get(self, "name")
72
+
73
+ @name.setter
74
+ def name(self, value: Optional[pulumi.Input[str]]):
75
+ pulumi.set(self, "name", value)
76
+
77
+ @property
78
+ @pulumi.getter(name="projectId")
79
+ def project_id(self) -> Optional[pulumi.Input[str]]:
80
+ """
81
+ `project_id`) The ID of the project the volume is associated with.
82
+ """
83
+ return pulumi.get(self, "project_id")
84
+
85
+ @project_id.setter
86
+ def project_id(self, value: Optional[pulumi.Input[str]]):
87
+ pulumi.set(self, "project_id", value)
88
+
89
+ @property
90
+ @pulumi.getter(name="sizeInGb")
91
+ def size_in_gb(self) -> Optional[pulumi.Input[int]]:
92
+ """
93
+ The size of the volume. Only one of `size_in_gb`, and `snapshot_id` should be specified.
94
+ """
95
+ return pulumi.get(self, "size_in_gb")
96
+
97
+ @size_in_gb.setter
98
+ def size_in_gb(self, value: Optional[pulumi.Input[int]]):
99
+ pulumi.set(self, "size_in_gb", value)
100
+
101
+ @property
102
+ @pulumi.getter(name="snapshotId")
103
+ def snapshot_id(self) -> Optional[pulumi.Input[str]]:
104
+ """
105
+ If set, the new volume will be created from this snapshot. Only one of `size_in_gb`, `snapshot_id` should be specified.
106
+ """
107
+ return pulumi.get(self, "snapshot_id")
108
+
109
+ @snapshot_id.setter
110
+ def snapshot_id(self, value: Optional[pulumi.Input[str]]):
111
+ pulumi.set(self, "snapshot_id", value)
112
+
113
+ @property
114
+ @pulumi.getter
115
+ def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
116
+ """
117
+ A list of tags to apply to the volume.
118
+ """
119
+ return pulumi.get(self, "tags")
120
+
121
+ @tags.setter
122
+ def tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
123
+ pulumi.set(self, "tags", value)
124
+
125
+ @property
126
+ @pulumi.getter
127
+ def zone(self) -> Optional[pulumi.Input[str]]:
128
+ """
129
+ `zone`) The zone in which the volume should be created.
130
+ """
131
+ return pulumi.get(self, "zone")
132
+
133
+ @zone.setter
134
+ def zone(self, value: Optional[pulumi.Input[str]]):
135
+ pulumi.set(self, "zone", value)
136
+
137
+
138
+ @pulumi.input_type
139
+ class _BlockVolumeState:
140
+ def __init__(__self__, *,
141
+ iops: Optional[pulumi.Input[int]] = None,
142
+ name: Optional[pulumi.Input[str]] = None,
143
+ project_id: Optional[pulumi.Input[str]] = None,
144
+ size_in_gb: Optional[pulumi.Input[int]] = None,
145
+ snapshot_id: Optional[pulumi.Input[str]] = None,
146
+ tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
147
+ zone: Optional[pulumi.Input[str]] = None):
148
+ """
149
+ Input properties used for looking up and filtering BlockVolume resources.
150
+ :param pulumi.Input[int] iops: The maximum IO/s expected, must match available options.
151
+ :param pulumi.Input[str] name: The name of the volume. If not provided it will be randomly generated.
152
+ :param pulumi.Input[str] project_id: `project_id`) The ID of the project the volume is associated with.
153
+ :param pulumi.Input[int] size_in_gb: The size of the volume. Only one of `size_in_gb`, and `snapshot_id` should be specified.
154
+ :param pulumi.Input[str] snapshot_id: If set, the new volume will be created from this snapshot. Only one of `size_in_gb`, `snapshot_id` should be specified.
155
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: A list of tags to apply to the volume.
156
+ :param pulumi.Input[str] zone: `zone`) The zone in which the volume should be created.
157
+ """
158
+ if iops is not None:
159
+ pulumi.set(__self__, "iops", iops)
160
+ if name is not None:
161
+ pulumi.set(__self__, "name", name)
162
+ if project_id is not None:
163
+ pulumi.set(__self__, "project_id", project_id)
164
+ if size_in_gb is not None:
165
+ pulumi.set(__self__, "size_in_gb", size_in_gb)
166
+ if snapshot_id is not None:
167
+ pulumi.set(__self__, "snapshot_id", snapshot_id)
168
+ if tags is not None:
169
+ pulumi.set(__self__, "tags", tags)
170
+ if zone is not None:
171
+ pulumi.set(__self__, "zone", zone)
172
+
173
+ @property
174
+ @pulumi.getter
175
+ def iops(self) -> Optional[pulumi.Input[int]]:
176
+ """
177
+ The maximum IO/s expected, must match available options.
178
+ """
179
+ return pulumi.get(self, "iops")
180
+
181
+ @iops.setter
182
+ def iops(self, value: Optional[pulumi.Input[int]]):
183
+ pulumi.set(self, "iops", value)
184
+
185
+ @property
186
+ @pulumi.getter
187
+ def name(self) -> Optional[pulumi.Input[str]]:
188
+ """
189
+ The name of the volume. If not provided it will be randomly generated.
190
+ """
191
+ return pulumi.get(self, "name")
192
+
193
+ @name.setter
194
+ def name(self, value: Optional[pulumi.Input[str]]):
195
+ pulumi.set(self, "name", value)
196
+
197
+ @property
198
+ @pulumi.getter(name="projectId")
199
+ def project_id(self) -> Optional[pulumi.Input[str]]:
200
+ """
201
+ `project_id`) The ID of the project the volume is associated with.
202
+ """
203
+ return pulumi.get(self, "project_id")
204
+
205
+ @project_id.setter
206
+ def project_id(self, value: Optional[pulumi.Input[str]]):
207
+ pulumi.set(self, "project_id", value)
208
+
209
+ @property
210
+ @pulumi.getter(name="sizeInGb")
211
+ def size_in_gb(self) -> Optional[pulumi.Input[int]]:
212
+ """
213
+ The size of the volume. Only one of `size_in_gb`, and `snapshot_id` should be specified.
214
+ """
215
+ return pulumi.get(self, "size_in_gb")
216
+
217
+ @size_in_gb.setter
218
+ def size_in_gb(self, value: Optional[pulumi.Input[int]]):
219
+ pulumi.set(self, "size_in_gb", value)
220
+
221
+ @property
222
+ @pulumi.getter(name="snapshotId")
223
+ def snapshot_id(self) -> Optional[pulumi.Input[str]]:
224
+ """
225
+ If set, the new volume will be created from this snapshot. Only one of `size_in_gb`, `snapshot_id` should be specified.
226
+ """
227
+ return pulumi.get(self, "snapshot_id")
228
+
229
+ @snapshot_id.setter
230
+ def snapshot_id(self, value: Optional[pulumi.Input[str]]):
231
+ pulumi.set(self, "snapshot_id", value)
232
+
233
+ @property
234
+ @pulumi.getter
235
+ def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
236
+ """
237
+ A list of tags to apply to the volume.
238
+ """
239
+ return pulumi.get(self, "tags")
240
+
241
+ @tags.setter
242
+ def tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
243
+ pulumi.set(self, "tags", value)
244
+
245
+ @property
246
+ @pulumi.getter
247
+ def zone(self) -> Optional[pulumi.Input[str]]:
248
+ """
249
+ `zone`) The zone in which the volume should be created.
250
+ """
251
+ return pulumi.get(self, "zone")
252
+
253
+ @zone.setter
254
+ def zone(self, value: Optional[pulumi.Input[str]]):
255
+ pulumi.set(self, "zone", value)
256
+
257
+
258
+ class BlockVolume(pulumi.CustomResource):
259
+ @overload
260
+ def __init__(__self__,
261
+ resource_name: str,
262
+ opts: Optional[pulumi.ResourceOptions] = None,
263
+ iops: Optional[pulumi.Input[int]] = None,
264
+ name: Optional[pulumi.Input[str]] = None,
265
+ project_id: Optional[pulumi.Input[str]] = None,
266
+ size_in_gb: Optional[pulumi.Input[int]] = None,
267
+ snapshot_id: Optional[pulumi.Input[str]] = None,
268
+ tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
269
+ zone: Optional[pulumi.Input[str]] = None,
270
+ __props__=None):
271
+ """
272
+ Creates and manages Scaleway Block Volumes.
273
+ For more information, see [the documentation](https://www.scaleway.com/en/developers/api/block/).
274
+
275
+ ## Example Usage
276
+
277
+ ### Basic
278
+
279
+ ```python
280
+ import pulumi
281
+ import pulumiverse_scaleway as scaleway
282
+
283
+ block_volume = scaleway.BlockVolume("block_volume",
284
+ iops=5000,
285
+ name="some-volume-name",
286
+ size_in_gb=20)
287
+ ```
288
+
289
+ ### With snapshot
290
+
291
+ ```python
292
+ import pulumi
293
+ import pulumiverse_scaleway as scaleway
294
+
295
+ base = scaleway.BlockVolume("base",
296
+ name="block-volume-base",
297
+ iops=5000,
298
+ size_in_gb=20)
299
+ main = scaleway.BlockSnapshot("main",
300
+ name="block-volume-from-snapshot",
301
+ volume_id=base.id)
302
+ main_block_volume = scaleway.BlockVolume("main",
303
+ name="block-volume-from-snapshot",
304
+ iops=5000,
305
+ snapshot_id=main.id)
306
+ ```
307
+
308
+ ## Import
309
+
310
+ Block Volumes can be imported using the `{zone}/{id}`, e.g.
311
+
312
+ bash
313
+
314
+ ```sh
315
+ $ pulumi import scaleway:index/blockVolume:BlockVolume block_volume fr-par-1/11111111-1111-1111-1111-111111111111
316
+ ```
317
+
318
+ :param str resource_name: The name of the resource.
319
+ :param pulumi.ResourceOptions opts: Options for the resource.
320
+ :param pulumi.Input[int] iops: The maximum IO/s expected, must match available options.
321
+ :param pulumi.Input[str] name: The name of the volume. If not provided it will be randomly generated.
322
+ :param pulumi.Input[str] project_id: `project_id`) The ID of the project the volume is associated with.
323
+ :param pulumi.Input[int] size_in_gb: The size of the volume. Only one of `size_in_gb`, and `snapshot_id` should be specified.
324
+ :param pulumi.Input[str] snapshot_id: If set, the new volume will be created from this snapshot. Only one of `size_in_gb`, `snapshot_id` should be specified.
325
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: A list of tags to apply to the volume.
326
+ :param pulumi.Input[str] zone: `zone`) The zone in which the volume should be created.
327
+ """
328
+ ...
329
+ @overload
330
+ def __init__(__self__,
331
+ resource_name: str,
332
+ args: BlockVolumeArgs,
333
+ opts: Optional[pulumi.ResourceOptions] = None):
334
+ """
335
+ Creates and manages Scaleway Block Volumes.
336
+ For more information, see [the documentation](https://www.scaleway.com/en/developers/api/block/).
337
+
338
+ ## Example Usage
339
+
340
+ ### Basic
341
+
342
+ ```python
343
+ import pulumi
344
+ import pulumiverse_scaleway as scaleway
345
+
346
+ block_volume = scaleway.BlockVolume("block_volume",
347
+ iops=5000,
348
+ name="some-volume-name",
349
+ size_in_gb=20)
350
+ ```
351
+
352
+ ### With snapshot
353
+
354
+ ```python
355
+ import pulumi
356
+ import pulumiverse_scaleway as scaleway
357
+
358
+ base = scaleway.BlockVolume("base",
359
+ name="block-volume-base",
360
+ iops=5000,
361
+ size_in_gb=20)
362
+ main = scaleway.BlockSnapshot("main",
363
+ name="block-volume-from-snapshot",
364
+ volume_id=base.id)
365
+ main_block_volume = scaleway.BlockVolume("main",
366
+ name="block-volume-from-snapshot",
367
+ iops=5000,
368
+ snapshot_id=main.id)
369
+ ```
370
+
371
+ ## Import
372
+
373
+ Block Volumes can be imported using the `{zone}/{id}`, e.g.
374
+
375
+ bash
376
+
377
+ ```sh
378
+ $ pulumi import scaleway:index/blockVolume:BlockVolume block_volume fr-par-1/11111111-1111-1111-1111-111111111111
379
+ ```
380
+
381
+ :param str resource_name: The name of the resource.
382
+ :param BlockVolumeArgs args: The arguments to use to populate this resource's properties.
383
+ :param pulumi.ResourceOptions opts: Options for the resource.
384
+ """
385
+ ...
386
+ def __init__(__self__, resource_name: str, *args, **kwargs):
387
+ resource_args, opts = _utilities.get_resource_args_opts(BlockVolumeArgs, pulumi.ResourceOptions, *args, **kwargs)
388
+ if resource_args is not None:
389
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
390
+ else:
391
+ __self__._internal_init(resource_name, *args, **kwargs)
392
+
393
+ def _internal_init(__self__,
394
+ resource_name: str,
395
+ opts: Optional[pulumi.ResourceOptions] = None,
396
+ iops: Optional[pulumi.Input[int]] = None,
397
+ name: Optional[pulumi.Input[str]] = None,
398
+ project_id: Optional[pulumi.Input[str]] = None,
399
+ size_in_gb: Optional[pulumi.Input[int]] = None,
400
+ snapshot_id: Optional[pulumi.Input[str]] = None,
401
+ tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
402
+ zone: Optional[pulumi.Input[str]] = None,
403
+ __props__=None):
404
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
405
+ if not isinstance(opts, pulumi.ResourceOptions):
406
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
407
+ if opts.id is None:
408
+ if __props__ is not None:
409
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
410
+ __props__ = BlockVolumeArgs.__new__(BlockVolumeArgs)
411
+
412
+ if iops is None and not opts.urn:
413
+ raise TypeError("Missing required property 'iops'")
414
+ __props__.__dict__["iops"] = iops
415
+ __props__.__dict__["name"] = name
416
+ __props__.__dict__["project_id"] = project_id
417
+ __props__.__dict__["size_in_gb"] = size_in_gb
418
+ __props__.__dict__["snapshot_id"] = snapshot_id
419
+ __props__.__dict__["tags"] = tags
420
+ __props__.__dict__["zone"] = zone
421
+ super(BlockVolume, __self__).__init__(
422
+ 'scaleway:index/blockVolume:BlockVolume',
423
+ resource_name,
424
+ __props__,
425
+ opts)
426
+
427
+ @staticmethod
428
+ def get(resource_name: str,
429
+ id: pulumi.Input[str],
430
+ opts: Optional[pulumi.ResourceOptions] = None,
431
+ iops: Optional[pulumi.Input[int]] = None,
432
+ name: Optional[pulumi.Input[str]] = None,
433
+ project_id: Optional[pulumi.Input[str]] = None,
434
+ size_in_gb: Optional[pulumi.Input[int]] = None,
435
+ snapshot_id: Optional[pulumi.Input[str]] = None,
436
+ tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
437
+ zone: Optional[pulumi.Input[str]] = None) -> 'BlockVolume':
438
+ """
439
+ Get an existing BlockVolume resource's state with the given name, id, and optional extra
440
+ properties used to qualify the lookup.
441
+
442
+ :param str resource_name: The unique name of the resulting resource.
443
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
444
+ :param pulumi.ResourceOptions opts: Options for the resource.
445
+ :param pulumi.Input[int] iops: The maximum IO/s expected, must match available options.
446
+ :param pulumi.Input[str] name: The name of the volume. If not provided it will be randomly generated.
447
+ :param pulumi.Input[str] project_id: `project_id`) The ID of the project the volume is associated with.
448
+ :param pulumi.Input[int] size_in_gb: The size of the volume. Only one of `size_in_gb`, and `snapshot_id` should be specified.
449
+ :param pulumi.Input[str] snapshot_id: If set, the new volume will be created from this snapshot. Only one of `size_in_gb`, `snapshot_id` should be specified.
450
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: A list of tags to apply to the volume.
451
+ :param pulumi.Input[str] zone: `zone`) The zone in which the volume should be created.
452
+ """
453
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
454
+
455
+ __props__ = _BlockVolumeState.__new__(_BlockVolumeState)
456
+
457
+ __props__.__dict__["iops"] = iops
458
+ __props__.__dict__["name"] = name
459
+ __props__.__dict__["project_id"] = project_id
460
+ __props__.__dict__["size_in_gb"] = size_in_gb
461
+ __props__.__dict__["snapshot_id"] = snapshot_id
462
+ __props__.__dict__["tags"] = tags
463
+ __props__.__dict__["zone"] = zone
464
+ return BlockVolume(resource_name, opts=opts, __props__=__props__)
465
+
466
+ @property
467
+ @pulumi.getter
468
+ def iops(self) -> pulumi.Output[int]:
469
+ """
470
+ The maximum IO/s expected, must match available options.
471
+ """
472
+ return pulumi.get(self, "iops")
473
+
474
+ @property
475
+ @pulumi.getter
476
+ def name(self) -> pulumi.Output[str]:
477
+ """
478
+ The name of the volume. If not provided it will be randomly generated.
479
+ """
480
+ return pulumi.get(self, "name")
481
+
482
+ @property
483
+ @pulumi.getter(name="projectId")
484
+ def project_id(self) -> pulumi.Output[str]:
485
+ """
486
+ `project_id`) The ID of the project the volume is associated with.
487
+ """
488
+ return pulumi.get(self, "project_id")
489
+
490
+ @property
491
+ @pulumi.getter(name="sizeInGb")
492
+ def size_in_gb(self) -> pulumi.Output[int]:
493
+ """
494
+ The size of the volume. Only one of `size_in_gb`, and `snapshot_id` should be specified.
495
+ """
496
+ return pulumi.get(self, "size_in_gb")
497
+
498
+ @property
499
+ @pulumi.getter(name="snapshotId")
500
+ def snapshot_id(self) -> pulumi.Output[Optional[str]]:
501
+ """
502
+ If set, the new volume will be created from this snapshot. Only one of `size_in_gb`, `snapshot_id` should be specified.
503
+ """
504
+ return pulumi.get(self, "snapshot_id")
505
+
506
+ @property
507
+ @pulumi.getter
508
+ def tags(self) -> pulumi.Output[Optional[Sequence[str]]]:
509
+ """
510
+ A list of tags to apply to the volume.
511
+ """
512
+ return pulumi.get(self, "tags")
513
+
514
+ @property
515
+ @pulumi.getter
516
+ def zone(self) -> pulumi.Output[str]:
517
+ """
518
+ `zone`) The zone in which the volume should be created.
519
+ """
520
+ return pulumi.get(self, "zone")
521
+