pulumiverse-scaleway 1.30.0a1752168858__py3-none-any.whl → 1.31.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. pulumiverse_scaleway/__init__.py +27 -0
  2. pulumiverse_scaleway/_inputs.py +94 -32
  3. pulumiverse_scaleway/apple_silicon_server.py +47 -0
  4. pulumiverse_scaleway/applesilicon/server.py +47 -0
  5. pulumiverse_scaleway/autoscaling/__init__.py +13 -0
  6. pulumiverse_scaleway/autoscaling/_inputs.py +559 -0
  7. pulumiverse_scaleway/autoscaling/instance_group.py +808 -0
  8. pulumiverse_scaleway/autoscaling/instance_policy.py +635 -0
  9. pulumiverse_scaleway/autoscaling/instance_template.py +879 -0
  10. pulumiverse_scaleway/autoscaling/outputs.py +439 -0
  11. pulumiverse_scaleway/edge_services_cache_stage.py +47 -0
  12. pulumiverse_scaleway/get_cockpit_source.py +50 -7
  13. pulumiverse_scaleway/get_kubernetes_node_pool.py +12 -1
  14. pulumiverse_scaleway/get_vpc.py +12 -1
  15. pulumiverse_scaleway/get_vpc_private_network.py +12 -1
  16. pulumiverse_scaleway/kubernetes/get_pool.py +12 -1
  17. pulumiverse_scaleway/kubernetes/pool.py +61 -0
  18. pulumiverse_scaleway/kubernetes_node_pool.py +61 -0
  19. pulumiverse_scaleway/loadbalancer_acl.py +7 -7
  20. pulumiverse_scaleway/loadbalancers/_inputs.py +51 -11
  21. pulumiverse_scaleway/loadbalancers/acl.py +7 -7
  22. pulumiverse_scaleway/loadbalancers/outputs.py +60 -10
  23. pulumiverse_scaleway/network/get_private_network.py +12 -1
  24. pulumiverse_scaleway/network/get_vpc.py +12 -1
  25. pulumiverse_scaleway/network/private_network.py +47 -0
  26. pulumiverse_scaleway/network/vpc.py +47 -0
  27. pulumiverse_scaleway/object/_inputs.py +43 -21
  28. pulumiverse_scaleway/object/bucket_acl.py +6 -4
  29. pulumiverse_scaleway/object/outputs.py +26 -12
  30. pulumiverse_scaleway/object_bucket_acl.py +6 -4
  31. pulumiverse_scaleway/observability/get_source.py +50 -7
  32. pulumiverse_scaleway/outputs.py +86 -22
  33. pulumiverse_scaleway/pulumi-plugin.json +1 -1
  34. pulumiverse_scaleway/vpc.py +47 -0
  35. pulumiverse_scaleway/vpc_private_network.py +47 -0
  36. {pulumiverse_scaleway-1.30.0a1752168858.dist-info → pulumiverse_scaleway-1.31.0.dist-info}/METADATA +1 -1
  37. {pulumiverse_scaleway-1.30.0a1752168858.dist-info → pulumiverse_scaleway-1.31.0.dist-info}/RECORD +39 -36
  38. pulumiverse_scaleway/elasticmetal/get_easy_partitioning.py +0 -177
  39. pulumiverse_scaleway/get_cockpit_plan.py +0 -94
  40. pulumiverse_scaleway/observability/get_plan.py +0 -90
  41. {pulumiverse_scaleway-1.30.0a1752168858.dist-info → pulumiverse_scaleway-1.31.0.dist-info}/WHEEL +0 -0
  42. {pulumiverse_scaleway-1.30.0a1752168858.dist-info → pulumiverse_scaleway-1.31.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,559 @@
1
+ # coding=utf-8
2
+ # *** WARNING: this file was generated by pulumi-language-python. ***
3
+ # *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+
5
+ import builtins
6
+ import copy
7
+ import warnings
8
+ import sys
9
+ import pulumi
10
+ import pulumi.runtime
11
+ from typing import Any, Mapping, Optional, Sequence, Union, overload
12
+ if sys.version_info >= (3, 11):
13
+ from typing import NotRequired, TypedDict, TypeAlias
14
+ else:
15
+ from typing_extensions import NotRequired, TypedDict, TypeAlias
16
+ from .. import _utilities
17
+
18
+ __all__ = [
19
+ 'InstanceGroupCapacityArgs',
20
+ 'InstanceGroupCapacityArgsDict',
21
+ 'InstanceGroupLoadBalancerArgs',
22
+ 'InstanceGroupLoadBalancerArgsDict',
23
+ 'InstancePolicyMetricArgs',
24
+ 'InstancePolicyMetricArgsDict',
25
+ 'InstanceTemplateVolumeArgs',
26
+ 'InstanceTemplateVolumeArgsDict',
27
+ 'InstanceTemplateVolumeFromEmptyArgs',
28
+ 'InstanceTemplateVolumeFromEmptyArgsDict',
29
+ 'InstanceTemplateVolumeFromSnapshotArgs',
30
+ 'InstanceTemplateVolumeFromSnapshotArgsDict',
31
+ ]
32
+
33
+ MYPY = False
34
+
35
+ if not MYPY:
36
+ class InstanceGroupCapacityArgsDict(TypedDict):
37
+ cooldown_delay: NotRequired[pulumi.Input[builtins.int]]
38
+ """
39
+ Time (in seconds) after a scaling action during which requests to carry out a new scaling action will be denied.
40
+ """
41
+ max_replicas: NotRequired[pulumi.Input[builtins.int]]
42
+ """
43
+ The maximum count of Instances for the Instance group.
44
+ """
45
+ min_replicas: NotRequired[pulumi.Input[builtins.int]]
46
+ """
47
+ The minimum count of Instances for the Instance group.
48
+ """
49
+ elif False:
50
+ InstanceGroupCapacityArgsDict: TypeAlias = Mapping[str, Any]
51
+
52
+ @pulumi.input_type
53
+ class InstanceGroupCapacityArgs:
54
+ def __init__(__self__, *,
55
+ cooldown_delay: Optional[pulumi.Input[builtins.int]] = None,
56
+ max_replicas: Optional[pulumi.Input[builtins.int]] = None,
57
+ min_replicas: Optional[pulumi.Input[builtins.int]] = None):
58
+ """
59
+ :param pulumi.Input[builtins.int] cooldown_delay: Time (in seconds) after a scaling action during which requests to carry out a new scaling action will be denied.
60
+ :param pulumi.Input[builtins.int] max_replicas: The maximum count of Instances for the Instance group.
61
+ :param pulumi.Input[builtins.int] min_replicas: The minimum count of Instances for the Instance group.
62
+ """
63
+ if cooldown_delay is not None:
64
+ pulumi.set(__self__, "cooldown_delay", cooldown_delay)
65
+ if max_replicas is not None:
66
+ pulumi.set(__self__, "max_replicas", max_replicas)
67
+ if min_replicas is not None:
68
+ pulumi.set(__self__, "min_replicas", min_replicas)
69
+
70
+ @property
71
+ @pulumi.getter(name="cooldownDelay")
72
+ def cooldown_delay(self) -> Optional[pulumi.Input[builtins.int]]:
73
+ """
74
+ Time (in seconds) after a scaling action during which requests to carry out a new scaling action will be denied.
75
+ """
76
+ return pulumi.get(self, "cooldown_delay")
77
+
78
+ @cooldown_delay.setter
79
+ def cooldown_delay(self, value: Optional[pulumi.Input[builtins.int]]):
80
+ pulumi.set(self, "cooldown_delay", value)
81
+
82
+ @property
83
+ @pulumi.getter(name="maxReplicas")
84
+ def max_replicas(self) -> Optional[pulumi.Input[builtins.int]]:
85
+ """
86
+ The maximum count of Instances for the Instance group.
87
+ """
88
+ return pulumi.get(self, "max_replicas")
89
+
90
+ @max_replicas.setter
91
+ def max_replicas(self, value: Optional[pulumi.Input[builtins.int]]):
92
+ pulumi.set(self, "max_replicas", value)
93
+
94
+ @property
95
+ @pulumi.getter(name="minReplicas")
96
+ def min_replicas(self) -> Optional[pulumi.Input[builtins.int]]:
97
+ """
98
+ The minimum count of Instances for the Instance group.
99
+ """
100
+ return pulumi.get(self, "min_replicas")
101
+
102
+ @min_replicas.setter
103
+ def min_replicas(self, value: Optional[pulumi.Input[builtins.int]]):
104
+ pulumi.set(self, "min_replicas", value)
105
+
106
+
107
+ if not MYPY:
108
+ class InstanceGroupLoadBalancerArgsDict(TypedDict):
109
+ backend_ids: NotRequired[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]
110
+ """
111
+ The Load Balancer backend IDs.
112
+ """
113
+ id: NotRequired[pulumi.Input[builtins.str]]
114
+ """
115
+ The ID of the Load Balancer.
116
+ """
117
+ private_network_id: NotRequired[pulumi.Input[builtins.str]]
118
+ """
119
+ The ID of the Private Network attached to the Load Balancer.
120
+ """
121
+ elif False:
122
+ InstanceGroupLoadBalancerArgsDict: TypeAlias = Mapping[str, Any]
123
+
124
+ @pulumi.input_type
125
+ class InstanceGroupLoadBalancerArgs:
126
+ def __init__(__self__, *,
127
+ backend_ids: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
128
+ id: Optional[pulumi.Input[builtins.str]] = None,
129
+ private_network_id: Optional[pulumi.Input[builtins.str]] = None):
130
+ """
131
+ :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] backend_ids: The Load Balancer backend IDs.
132
+ :param pulumi.Input[builtins.str] id: The ID of the Load Balancer.
133
+ :param pulumi.Input[builtins.str] private_network_id: The ID of the Private Network attached to the Load Balancer.
134
+ """
135
+ if backend_ids is not None:
136
+ pulumi.set(__self__, "backend_ids", backend_ids)
137
+ if id is not None:
138
+ pulumi.set(__self__, "id", id)
139
+ if private_network_id is not None:
140
+ pulumi.set(__self__, "private_network_id", private_network_id)
141
+
142
+ @property
143
+ @pulumi.getter(name="backendIds")
144
+ def backend_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]:
145
+ """
146
+ The Load Balancer backend IDs.
147
+ """
148
+ return pulumi.get(self, "backend_ids")
149
+
150
+ @backend_ids.setter
151
+ def backend_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]):
152
+ pulumi.set(self, "backend_ids", value)
153
+
154
+ @property
155
+ @pulumi.getter
156
+ def id(self) -> Optional[pulumi.Input[builtins.str]]:
157
+ """
158
+ The ID of the Load Balancer.
159
+ """
160
+ return pulumi.get(self, "id")
161
+
162
+ @id.setter
163
+ def id(self, value: Optional[pulumi.Input[builtins.str]]):
164
+ pulumi.set(self, "id", value)
165
+
166
+ @property
167
+ @pulumi.getter(name="privateNetworkId")
168
+ def private_network_id(self) -> Optional[pulumi.Input[builtins.str]]:
169
+ """
170
+ The ID of the Private Network attached to the Load Balancer.
171
+ """
172
+ return pulumi.get(self, "private_network_id")
173
+
174
+ @private_network_id.setter
175
+ def private_network_id(self, value: Optional[pulumi.Input[builtins.str]]):
176
+ pulumi.set(self, "private_network_id", value)
177
+
178
+
179
+ if not MYPY:
180
+ class InstancePolicyMetricArgsDict(TypedDict):
181
+ aggregate: pulumi.Input[builtins.str]
182
+ """
183
+ How the values sampled for the `metric` should be aggregated.
184
+ """
185
+ name: pulumi.Input[builtins.str]
186
+ """
187
+ Name or description of the metric policy.
188
+ """
189
+ operator: pulumi.Input[builtins.str]
190
+ """
191
+ Operator used when comparing the threshold value of the chosen `metric` to the actual sampled and aggregated value.
192
+ """
193
+ cockpit_metric_name: NotRequired[pulumi.Input[builtins.str]]
194
+ """
195
+ The custom metric to use for this policy. This must be stored in Scaleway Cockpit. The metric forms the basis of the condition that will be checked to determine whether a scaling action should be triggered
196
+ """
197
+ managed_metric: NotRequired[pulumi.Input[builtins.str]]
198
+ """
199
+ The managed metric to use for this policy. These are available by default in Cockpit without any configuration or `node_exporter`. The chosen metric forms the basis of the condition that will be checked to determine whether a scaling action should be triggered.
200
+ """
201
+ sampling_range_min: NotRequired[pulumi.Input[builtins.int]]
202
+ """
203
+ The Interval of time, in minutes, during which metric is sampled.
204
+ """
205
+ threshold: NotRequired[pulumi.Input[builtins.int]]
206
+ """
207
+ The threshold value to measure the aggregated sampled `metric` value against. Combined with the `operator` field, determines whether a scaling action should be triggered.
208
+ """
209
+ elif False:
210
+ InstancePolicyMetricArgsDict: TypeAlias = Mapping[str, Any]
211
+
212
+ @pulumi.input_type
213
+ class InstancePolicyMetricArgs:
214
+ def __init__(__self__, *,
215
+ aggregate: pulumi.Input[builtins.str],
216
+ name: pulumi.Input[builtins.str],
217
+ operator: pulumi.Input[builtins.str],
218
+ cockpit_metric_name: Optional[pulumi.Input[builtins.str]] = None,
219
+ managed_metric: Optional[pulumi.Input[builtins.str]] = None,
220
+ sampling_range_min: Optional[pulumi.Input[builtins.int]] = None,
221
+ threshold: Optional[pulumi.Input[builtins.int]] = None):
222
+ """
223
+ :param pulumi.Input[builtins.str] aggregate: How the values sampled for the `metric` should be aggregated.
224
+ :param pulumi.Input[builtins.str] name: Name or description of the metric policy.
225
+ :param pulumi.Input[builtins.str] operator: Operator used when comparing the threshold value of the chosen `metric` to the actual sampled and aggregated value.
226
+ :param pulumi.Input[builtins.str] cockpit_metric_name: The custom metric to use for this policy. This must be stored in Scaleway Cockpit. The metric forms the basis of the condition that will be checked to determine whether a scaling action should be triggered
227
+ :param pulumi.Input[builtins.str] managed_metric: The managed metric to use for this policy. These are available by default in Cockpit without any configuration or `node_exporter`. The chosen metric forms the basis of the condition that will be checked to determine whether a scaling action should be triggered.
228
+ :param pulumi.Input[builtins.int] sampling_range_min: The Interval of time, in minutes, during which metric is sampled.
229
+ :param pulumi.Input[builtins.int] threshold: The threshold value to measure the aggregated sampled `metric` value against. Combined with the `operator` field, determines whether a scaling action should be triggered.
230
+ """
231
+ pulumi.set(__self__, "aggregate", aggregate)
232
+ pulumi.set(__self__, "name", name)
233
+ pulumi.set(__self__, "operator", operator)
234
+ if cockpit_metric_name is not None:
235
+ pulumi.set(__self__, "cockpit_metric_name", cockpit_metric_name)
236
+ if managed_metric is not None:
237
+ pulumi.set(__self__, "managed_metric", managed_metric)
238
+ if sampling_range_min is not None:
239
+ pulumi.set(__self__, "sampling_range_min", sampling_range_min)
240
+ if threshold is not None:
241
+ pulumi.set(__self__, "threshold", threshold)
242
+
243
+ @property
244
+ @pulumi.getter
245
+ def aggregate(self) -> pulumi.Input[builtins.str]:
246
+ """
247
+ How the values sampled for the `metric` should be aggregated.
248
+ """
249
+ return pulumi.get(self, "aggregate")
250
+
251
+ @aggregate.setter
252
+ def aggregate(self, value: pulumi.Input[builtins.str]):
253
+ pulumi.set(self, "aggregate", value)
254
+
255
+ @property
256
+ @pulumi.getter
257
+ def name(self) -> pulumi.Input[builtins.str]:
258
+ """
259
+ Name or description of the metric policy.
260
+ """
261
+ return pulumi.get(self, "name")
262
+
263
+ @name.setter
264
+ def name(self, value: pulumi.Input[builtins.str]):
265
+ pulumi.set(self, "name", value)
266
+
267
+ @property
268
+ @pulumi.getter
269
+ def operator(self) -> pulumi.Input[builtins.str]:
270
+ """
271
+ Operator used when comparing the threshold value of the chosen `metric` to the actual sampled and aggregated value.
272
+ """
273
+ return pulumi.get(self, "operator")
274
+
275
+ @operator.setter
276
+ def operator(self, value: pulumi.Input[builtins.str]):
277
+ pulumi.set(self, "operator", value)
278
+
279
+ @property
280
+ @pulumi.getter(name="cockpitMetricName")
281
+ def cockpit_metric_name(self) -> Optional[pulumi.Input[builtins.str]]:
282
+ """
283
+ The custom metric to use for this policy. This must be stored in Scaleway Cockpit. The metric forms the basis of the condition that will be checked to determine whether a scaling action should be triggered
284
+ """
285
+ return pulumi.get(self, "cockpit_metric_name")
286
+
287
+ @cockpit_metric_name.setter
288
+ def cockpit_metric_name(self, value: Optional[pulumi.Input[builtins.str]]):
289
+ pulumi.set(self, "cockpit_metric_name", value)
290
+
291
+ @property
292
+ @pulumi.getter(name="managedMetric")
293
+ def managed_metric(self) -> Optional[pulumi.Input[builtins.str]]:
294
+ """
295
+ The managed metric to use for this policy. These are available by default in Cockpit without any configuration or `node_exporter`. The chosen metric forms the basis of the condition that will be checked to determine whether a scaling action should be triggered.
296
+ """
297
+ return pulumi.get(self, "managed_metric")
298
+
299
+ @managed_metric.setter
300
+ def managed_metric(self, value: Optional[pulumi.Input[builtins.str]]):
301
+ pulumi.set(self, "managed_metric", value)
302
+
303
+ @property
304
+ @pulumi.getter(name="samplingRangeMin")
305
+ def sampling_range_min(self) -> Optional[pulumi.Input[builtins.int]]:
306
+ """
307
+ The Interval of time, in minutes, during which metric is sampled.
308
+ """
309
+ return pulumi.get(self, "sampling_range_min")
310
+
311
+ @sampling_range_min.setter
312
+ def sampling_range_min(self, value: Optional[pulumi.Input[builtins.int]]):
313
+ pulumi.set(self, "sampling_range_min", value)
314
+
315
+ @property
316
+ @pulumi.getter
317
+ def threshold(self) -> Optional[pulumi.Input[builtins.int]]:
318
+ """
319
+ The threshold value to measure the aggregated sampled `metric` value against. Combined with the `operator` field, determines whether a scaling action should be triggered.
320
+ """
321
+ return pulumi.get(self, "threshold")
322
+
323
+ @threshold.setter
324
+ def threshold(self, value: Optional[pulumi.Input[builtins.int]]):
325
+ pulumi.set(self, "threshold", value)
326
+
327
+
328
+ if not MYPY:
329
+ class InstanceTemplateVolumeArgsDict(TypedDict):
330
+ name: pulumi.Input[builtins.str]
331
+ """
332
+ The name of the volume.
333
+ """
334
+ volume_type: pulumi.Input[builtins.str]
335
+ """
336
+ The type of the volume.
337
+ """
338
+ boot: NotRequired[pulumi.Input[builtins.bool]]
339
+ """
340
+ Force the Instance to boot on this volume.
341
+ """
342
+ from_empty: NotRequired[pulumi.Input['InstanceTemplateVolumeFromEmptyArgsDict']]
343
+ """
344
+ Volume instance template from empty
345
+ """
346
+ from_snapshot: NotRequired[pulumi.Input['InstanceTemplateVolumeFromSnapshotArgsDict']]
347
+ """
348
+ Volume instance template from snapshot
349
+ """
350
+ perf_iops: NotRequired[pulumi.Input[builtins.int]]
351
+ """
352
+ The maximum IO/s expected, according to the different options available in stock (`5000 | 15000`).
353
+ """
354
+ tags: NotRequired[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]
355
+ """
356
+ The list of tags assigned to the volume.
357
+ """
358
+ elif False:
359
+ InstanceTemplateVolumeArgsDict: TypeAlias = Mapping[str, Any]
360
+
361
+ @pulumi.input_type
362
+ class InstanceTemplateVolumeArgs:
363
+ def __init__(__self__, *,
364
+ name: pulumi.Input[builtins.str],
365
+ volume_type: pulumi.Input[builtins.str],
366
+ boot: Optional[pulumi.Input[builtins.bool]] = None,
367
+ from_empty: Optional[pulumi.Input['InstanceTemplateVolumeFromEmptyArgs']] = None,
368
+ from_snapshot: Optional[pulumi.Input['InstanceTemplateVolumeFromSnapshotArgs']] = None,
369
+ perf_iops: Optional[pulumi.Input[builtins.int]] = None,
370
+ tags: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None):
371
+ """
372
+ :param pulumi.Input[builtins.str] name: The name of the volume.
373
+ :param pulumi.Input[builtins.str] volume_type: The type of the volume.
374
+ :param pulumi.Input[builtins.bool] boot: Force the Instance to boot on this volume.
375
+ :param pulumi.Input['InstanceTemplateVolumeFromEmptyArgs'] from_empty: Volume instance template from empty
376
+ :param pulumi.Input['InstanceTemplateVolumeFromSnapshotArgs'] from_snapshot: Volume instance template from snapshot
377
+ :param pulumi.Input[builtins.int] perf_iops: The maximum IO/s expected, according to the different options available in stock (`5000 | 15000`).
378
+ :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] tags: The list of tags assigned to the volume.
379
+ """
380
+ pulumi.set(__self__, "name", name)
381
+ pulumi.set(__self__, "volume_type", volume_type)
382
+ if boot is not None:
383
+ pulumi.set(__self__, "boot", boot)
384
+ if from_empty is not None:
385
+ pulumi.set(__self__, "from_empty", from_empty)
386
+ if from_snapshot is not None:
387
+ pulumi.set(__self__, "from_snapshot", from_snapshot)
388
+ if perf_iops is not None:
389
+ pulumi.set(__self__, "perf_iops", perf_iops)
390
+ if tags is not None:
391
+ pulumi.set(__self__, "tags", tags)
392
+
393
+ @property
394
+ @pulumi.getter
395
+ def name(self) -> pulumi.Input[builtins.str]:
396
+ """
397
+ The name of the volume.
398
+ """
399
+ return pulumi.get(self, "name")
400
+
401
+ @name.setter
402
+ def name(self, value: pulumi.Input[builtins.str]):
403
+ pulumi.set(self, "name", value)
404
+
405
+ @property
406
+ @pulumi.getter(name="volumeType")
407
+ def volume_type(self) -> pulumi.Input[builtins.str]:
408
+ """
409
+ The type of the volume.
410
+ """
411
+ return pulumi.get(self, "volume_type")
412
+
413
+ @volume_type.setter
414
+ def volume_type(self, value: pulumi.Input[builtins.str]):
415
+ pulumi.set(self, "volume_type", value)
416
+
417
+ @property
418
+ @pulumi.getter
419
+ def boot(self) -> Optional[pulumi.Input[builtins.bool]]:
420
+ """
421
+ Force the Instance to boot on this volume.
422
+ """
423
+ return pulumi.get(self, "boot")
424
+
425
+ @boot.setter
426
+ def boot(self, value: Optional[pulumi.Input[builtins.bool]]):
427
+ pulumi.set(self, "boot", value)
428
+
429
+ @property
430
+ @pulumi.getter(name="fromEmpty")
431
+ def from_empty(self) -> Optional[pulumi.Input['InstanceTemplateVolumeFromEmptyArgs']]:
432
+ """
433
+ Volume instance template from empty
434
+ """
435
+ return pulumi.get(self, "from_empty")
436
+
437
+ @from_empty.setter
438
+ def from_empty(self, value: Optional[pulumi.Input['InstanceTemplateVolumeFromEmptyArgs']]):
439
+ pulumi.set(self, "from_empty", value)
440
+
441
+ @property
442
+ @pulumi.getter(name="fromSnapshot")
443
+ def from_snapshot(self) -> Optional[pulumi.Input['InstanceTemplateVolumeFromSnapshotArgs']]:
444
+ """
445
+ Volume instance template from snapshot
446
+ """
447
+ return pulumi.get(self, "from_snapshot")
448
+
449
+ @from_snapshot.setter
450
+ def from_snapshot(self, value: Optional[pulumi.Input['InstanceTemplateVolumeFromSnapshotArgs']]):
451
+ pulumi.set(self, "from_snapshot", value)
452
+
453
+ @property
454
+ @pulumi.getter(name="perfIops")
455
+ def perf_iops(self) -> Optional[pulumi.Input[builtins.int]]:
456
+ """
457
+ The maximum IO/s expected, according to the different options available in stock (`5000 | 15000`).
458
+ """
459
+ return pulumi.get(self, "perf_iops")
460
+
461
+ @perf_iops.setter
462
+ def perf_iops(self, value: Optional[pulumi.Input[builtins.int]]):
463
+ pulumi.set(self, "perf_iops", value)
464
+
465
+ @property
466
+ @pulumi.getter
467
+ def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]:
468
+ """
469
+ The list of tags assigned to the volume.
470
+ """
471
+ return pulumi.get(self, "tags")
472
+
473
+ @tags.setter
474
+ def tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]):
475
+ pulumi.set(self, "tags", value)
476
+
477
+
478
+ if not MYPY:
479
+ class InstanceTemplateVolumeFromEmptyArgsDict(TypedDict):
480
+ size: pulumi.Input[builtins.int]
481
+ """
482
+ Size in GB of the new empty volume
483
+ """
484
+ elif False:
485
+ InstanceTemplateVolumeFromEmptyArgsDict: TypeAlias = Mapping[str, Any]
486
+
487
+ @pulumi.input_type
488
+ class InstanceTemplateVolumeFromEmptyArgs:
489
+ def __init__(__self__, *,
490
+ size: pulumi.Input[builtins.int]):
491
+ """
492
+ :param pulumi.Input[builtins.int] size: Size in GB of the new empty volume
493
+ """
494
+ pulumi.set(__self__, "size", size)
495
+
496
+ @property
497
+ @pulumi.getter
498
+ def size(self) -> pulumi.Input[builtins.int]:
499
+ """
500
+ Size in GB of the new empty volume
501
+ """
502
+ return pulumi.get(self, "size")
503
+
504
+ @size.setter
505
+ def size(self, value: pulumi.Input[builtins.int]):
506
+ pulumi.set(self, "size", value)
507
+
508
+
509
+ if not MYPY:
510
+ class InstanceTemplateVolumeFromSnapshotArgsDict(TypedDict):
511
+ snapshot_id: pulumi.Input[builtins.str]
512
+ """
513
+ ID of the snapshot to clone
514
+ """
515
+ size: NotRequired[pulumi.Input[builtins.int]]
516
+ """
517
+ Override size (in GB) of the cloned volume
518
+ """
519
+ elif False:
520
+ InstanceTemplateVolumeFromSnapshotArgsDict: TypeAlias = Mapping[str, Any]
521
+
522
+ @pulumi.input_type
523
+ class InstanceTemplateVolumeFromSnapshotArgs:
524
+ def __init__(__self__, *,
525
+ snapshot_id: pulumi.Input[builtins.str],
526
+ size: Optional[pulumi.Input[builtins.int]] = None):
527
+ """
528
+ :param pulumi.Input[builtins.str] snapshot_id: ID of the snapshot to clone
529
+ :param pulumi.Input[builtins.int] size: Override size (in GB) of the cloned volume
530
+ """
531
+ pulumi.set(__self__, "snapshot_id", snapshot_id)
532
+ if size is not None:
533
+ pulumi.set(__self__, "size", size)
534
+
535
+ @property
536
+ @pulumi.getter(name="snapshotId")
537
+ def snapshot_id(self) -> pulumi.Input[builtins.str]:
538
+ """
539
+ ID of the snapshot to clone
540
+ """
541
+ return pulumi.get(self, "snapshot_id")
542
+
543
+ @snapshot_id.setter
544
+ def snapshot_id(self, value: pulumi.Input[builtins.str]):
545
+ pulumi.set(self, "snapshot_id", value)
546
+
547
+ @property
548
+ @pulumi.getter
549
+ def size(self) -> Optional[pulumi.Input[builtins.int]]:
550
+ """
551
+ Override size (in GB) of the cloned volume
552
+ """
553
+ return pulumi.get(self, "size")
554
+
555
+ @size.setter
556
+ def size(self, value: Optional[pulumi.Input[builtins.int]]):
557
+ pulumi.set(self, "size", value)
558
+
559
+