pulumiverse-scaleway 1.30.0a1752168858__py3-none-any.whl → 1.31.0a1752171288__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.0a1752171288.dist-info}/METADATA +1 -1
  37. {pulumiverse_scaleway-1.30.0a1752168858.dist-info → pulumiverse_scaleway-1.31.0a1752171288.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.0a1752171288.dist-info}/WHEEL +0 -0
  42. {pulumiverse_scaleway-1.30.0a1752168858.dist-info → pulumiverse_scaleway-1.31.0a1752171288.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,879 @@
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
+ from . import outputs
18
+ from ._inputs import *
19
+
20
+ __all__ = ['InstanceTemplateArgs', 'InstanceTemplate']
21
+
22
+ @pulumi.input_type
23
+ class InstanceTemplateArgs:
24
+ def __init__(__self__, *,
25
+ commercial_type: pulumi.Input[builtins.str],
26
+ cloud_init: Optional[pulumi.Input[builtins.str]] = None,
27
+ image_id: Optional[pulumi.Input[builtins.str]] = None,
28
+ name: Optional[pulumi.Input[builtins.str]] = None,
29
+ placement_group_id: Optional[pulumi.Input[builtins.str]] = None,
30
+ private_network_ids: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
31
+ project_id: Optional[pulumi.Input[builtins.str]] = None,
32
+ public_ips_v4_count: Optional[pulumi.Input[builtins.int]] = None,
33
+ public_ips_v6_count: Optional[pulumi.Input[builtins.int]] = None,
34
+ security_group_id: Optional[pulumi.Input[builtins.str]] = None,
35
+ tags: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
36
+ volumes: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceTemplateVolumeArgs']]]] = None,
37
+ zone: Optional[pulumi.Input[builtins.str]] = None):
38
+ """
39
+ The set of arguments for constructing a InstanceTemplate resource.
40
+ :param pulumi.Input[builtins.str] commercial_type: The name of Instance commercial type.
41
+ :param pulumi.Input[builtins.str] cloud_init: The instance image ID. Can be an ID of a marketplace or personal image. This image must be compatible with `volume` and `commercial_type` template.
42
+ :param pulumi.Input[builtins.str] image_id: The instance image ID. Can be an ID of a marketplace or personal image. This image must be compatible with `volume` and `commercial_type` template.
43
+ :param pulumi.Input[builtins.str] name: The Instance group template.
44
+ :param pulumi.Input[builtins.str] placement_group_id: The instance placement group ID. This is optional, but it is highly recommended to set a preference for Instance location within Availability Zone.
45
+ :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] private_network_ids: The private Network IDs to attach to the new Instance.
46
+ :param pulumi.Input[builtins.str] project_id: `project_id`) The ID of the Project the Instance template is associated with.
47
+ :param pulumi.Input[builtins.int] public_ips_v4_count: The number of flexible IPv4 addresses to attach to the new Instance.
48
+ :param pulumi.Input[builtins.int] public_ips_v6_count: The number of flexible IPv6 addresses to attach to the new Instance.
49
+ :param pulumi.Input[builtins.str] security_group_id: The instance security group ID.
50
+ :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] tags: The tags associated with the Instance template.
51
+ :param pulumi.Input[Sequence[pulumi.Input['InstanceTemplateVolumeArgs']]] volumes: The template of Instance volume.
52
+ :param pulumi.Input[builtins.str] zone: `zone`) The zone in which the Instance template exists.
53
+ """
54
+ pulumi.set(__self__, "commercial_type", commercial_type)
55
+ if cloud_init is not None:
56
+ pulumi.set(__self__, "cloud_init", cloud_init)
57
+ if image_id is not None:
58
+ pulumi.set(__self__, "image_id", image_id)
59
+ if name is not None:
60
+ pulumi.set(__self__, "name", name)
61
+ if placement_group_id is not None:
62
+ pulumi.set(__self__, "placement_group_id", placement_group_id)
63
+ if private_network_ids is not None:
64
+ pulumi.set(__self__, "private_network_ids", private_network_ids)
65
+ if project_id is not None:
66
+ pulumi.set(__self__, "project_id", project_id)
67
+ if public_ips_v4_count is not None:
68
+ pulumi.set(__self__, "public_ips_v4_count", public_ips_v4_count)
69
+ if public_ips_v6_count is not None:
70
+ pulumi.set(__self__, "public_ips_v6_count", public_ips_v6_count)
71
+ if security_group_id is not None:
72
+ pulumi.set(__self__, "security_group_id", security_group_id)
73
+ if tags is not None:
74
+ pulumi.set(__self__, "tags", tags)
75
+ if volumes is not None:
76
+ pulumi.set(__self__, "volumes", volumes)
77
+ if zone is not None:
78
+ pulumi.set(__self__, "zone", zone)
79
+
80
+ @property
81
+ @pulumi.getter(name="commercialType")
82
+ def commercial_type(self) -> pulumi.Input[builtins.str]:
83
+ """
84
+ The name of Instance commercial type.
85
+ """
86
+ return pulumi.get(self, "commercial_type")
87
+
88
+ @commercial_type.setter
89
+ def commercial_type(self, value: pulumi.Input[builtins.str]):
90
+ pulumi.set(self, "commercial_type", value)
91
+
92
+ @property
93
+ @pulumi.getter(name="cloudInit")
94
+ def cloud_init(self) -> Optional[pulumi.Input[builtins.str]]:
95
+ """
96
+ The instance image ID. Can be an ID of a marketplace or personal image. This image must be compatible with `volume` and `commercial_type` template.
97
+ """
98
+ return pulumi.get(self, "cloud_init")
99
+
100
+ @cloud_init.setter
101
+ def cloud_init(self, value: Optional[pulumi.Input[builtins.str]]):
102
+ pulumi.set(self, "cloud_init", value)
103
+
104
+ @property
105
+ @pulumi.getter(name="imageId")
106
+ def image_id(self) -> Optional[pulumi.Input[builtins.str]]:
107
+ """
108
+ The instance image ID. Can be an ID of a marketplace or personal image. This image must be compatible with `volume` and `commercial_type` template.
109
+ """
110
+ return pulumi.get(self, "image_id")
111
+
112
+ @image_id.setter
113
+ def image_id(self, value: Optional[pulumi.Input[builtins.str]]):
114
+ pulumi.set(self, "image_id", value)
115
+
116
+ @property
117
+ @pulumi.getter
118
+ def name(self) -> Optional[pulumi.Input[builtins.str]]:
119
+ """
120
+ The Instance group template.
121
+ """
122
+ return pulumi.get(self, "name")
123
+
124
+ @name.setter
125
+ def name(self, value: Optional[pulumi.Input[builtins.str]]):
126
+ pulumi.set(self, "name", value)
127
+
128
+ @property
129
+ @pulumi.getter(name="placementGroupId")
130
+ def placement_group_id(self) -> Optional[pulumi.Input[builtins.str]]:
131
+ """
132
+ The instance placement group ID. This is optional, but it is highly recommended to set a preference for Instance location within Availability Zone.
133
+ """
134
+ return pulumi.get(self, "placement_group_id")
135
+
136
+ @placement_group_id.setter
137
+ def placement_group_id(self, value: Optional[pulumi.Input[builtins.str]]):
138
+ pulumi.set(self, "placement_group_id", value)
139
+
140
+ @property
141
+ @pulumi.getter(name="privateNetworkIds")
142
+ def private_network_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]:
143
+ """
144
+ The private Network IDs to attach to the new Instance.
145
+ """
146
+ return pulumi.get(self, "private_network_ids")
147
+
148
+ @private_network_ids.setter
149
+ def private_network_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]):
150
+ pulumi.set(self, "private_network_ids", value)
151
+
152
+ @property
153
+ @pulumi.getter(name="projectId")
154
+ def project_id(self) -> Optional[pulumi.Input[builtins.str]]:
155
+ """
156
+ `project_id`) The ID of the Project the Instance template is associated with.
157
+ """
158
+ return pulumi.get(self, "project_id")
159
+
160
+ @project_id.setter
161
+ def project_id(self, value: Optional[pulumi.Input[builtins.str]]):
162
+ pulumi.set(self, "project_id", value)
163
+
164
+ @property
165
+ @pulumi.getter(name="publicIpsV4Count")
166
+ def public_ips_v4_count(self) -> Optional[pulumi.Input[builtins.int]]:
167
+ """
168
+ The number of flexible IPv4 addresses to attach to the new Instance.
169
+ """
170
+ return pulumi.get(self, "public_ips_v4_count")
171
+
172
+ @public_ips_v4_count.setter
173
+ def public_ips_v4_count(self, value: Optional[pulumi.Input[builtins.int]]):
174
+ pulumi.set(self, "public_ips_v4_count", value)
175
+
176
+ @property
177
+ @pulumi.getter(name="publicIpsV6Count")
178
+ def public_ips_v6_count(self) -> Optional[pulumi.Input[builtins.int]]:
179
+ """
180
+ The number of flexible IPv6 addresses to attach to the new Instance.
181
+ """
182
+ return pulumi.get(self, "public_ips_v6_count")
183
+
184
+ @public_ips_v6_count.setter
185
+ def public_ips_v6_count(self, value: Optional[pulumi.Input[builtins.int]]):
186
+ pulumi.set(self, "public_ips_v6_count", value)
187
+
188
+ @property
189
+ @pulumi.getter(name="securityGroupId")
190
+ def security_group_id(self) -> Optional[pulumi.Input[builtins.str]]:
191
+ """
192
+ The instance security group ID.
193
+ """
194
+ return pulumi.get(self, "security_group_id")
195
+
196
+ @security_group_id.setter
197
+ def security_group_id(self, value: Optional[pulumi.Input[builtins.str]]):
198
+ pulumi.set(self, "security_group_id", value)
199
+
200
+ @property
201
+ @pulumi.getter
202
+ def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]:
203
+ """
204
+ The tags associated with the Instance template.
205
+ """
206
+ return pulumi.get(self, "tags")
207
+
208
+ @tags.setter
209
+ def tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]):
210
+ pulumi.set(self, "tags", value)
211
+
212
+ @property
213
+ @pulumi.getter
214
+ def volumes(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InstanceTemplateVolumeArgs']]]]:
215
+ """
216
+ The template of Instance volume.
217
+ """
218
+ return pulumi.get(self, "volumes")
219
+
220
+ @volumes.setter
221
+ def volumes(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceTemplateVolumeArgs']]]]):
222
+ pulumi.set(self, "volumes", value)
223
+
224
+ @property
225
+ @pulumi.getter
226
+ def zone(self) -> Optional[pulumi.Input[builtins.str]]:
227
+ """
228
+ `zone`) The zone in which the Instance template exists.
229
+ """
230
+ return pulumi.get(self, "zone")
231
+
232
+ @zone.setter
233
+ def zone(self, value: Optional[pulumi.Input[builtins.str]]):
234
+ pulumi.set(self, "zone", value)
235
+
236
+
237
+ @pulumi.input_type
238
+ class _InstanceTemplateState:
239
+ def __init__(__self__, *,
240
+ cloud_init: Optional[pulumi.Input[builtins.str]] = None,
241
+ commercial_type: Optional[pulumi.Input[builtins.str]] = None,
242
+ created_at: Optional[pulumi.Input[builtins.str]] = None,
243
+ image_id: Optional[pulumi.Input[builtins.str]] = None,
244
+ name: Optional[pulumi.Input[builtins.str]] = None,
245
+ placement_group_id: Optional[pulumi.Input[builtins.str]] = None,
246
+ private_network_ids: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
247
+ project_id: Optional[pulumi.Input[builtins.str]] = None,
248
+ public_ips_v4_count: Optional[pulumi.Input[builtins.int]] = None,
249
+ public_ips_v6_count: Optional[pulumi.Input[builtins.int]] = None,
250
+ security_group_id: Optional[pulumi.Input[builtins.str]] = None,
251
+ status: Optional[pulumi.Input[builtins.str]] = None,
252
+ tags: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
253
+ updated_at: Optional[pulumi.Input[builtins.str]] = None,
254
+ volumes: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceTemplateVolumeArgs']]]] = None,
255
+ zone: Optional[pulumi.Input[builtins.str]] = None):
256
+ """
257
+ Input properties used for looking up and filtering InstanceTemplate resources.
258
+ :param pulumi.Input[builtins.str] cloud_init: The instance image ID. Can be an ID of a marketplace or personal image. This image must be compatible with `volume` and `commercial_type` template.
259
+ :param pulumi.Input[builtins.str] commercial_type: The name of Instance commercial type.
260
+ :param pulumi.Input[builtins.str] created_at: Date and time of Instance group's creation (RFC 3339 format).
261
+ :param pulumi.Input[builtins.str] image_id: The instance image ID. Can be an ID of a marketplace or personal image. This image must be compatible with `volume` and `commercial_type` template.
262
+ :param pulumi.Input[builtins.str] name: The Instance group template.
263
+ :param pulumi.Input[builtins.str] placement_group_id: The instance placement group ID. This is optional, but it is highly recommended to set a preference for Instance location within Availability Zone.
264
+ :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] private_network_ids: The private Network IDs to attach to the new Instance.
265
+ :param pulumi.Input[builtins.str] project_id: `project_id`) The ID of the Project the Instance template is associated with.
266
+ :param pulumi.Input[builtins.int] public_ips_v4_count: The number of flexible IPv4 addresses to attach to the new Instance.
267
+ :param pulumi.Input[builtins.int] public_ips_v6_count: The number of flexible IPv6 addresses to attach to the new Instance.
268
+ :param pulumi.Input[builtins.str] security_group_id: The instance security group ID.
269
+ :param pulumi.Input[builtins.str] status: The Instance template status
270
+ :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] tags: The tags associated with the Instance template.
271
+ :param pulumi.Input[builtins.str] updated_at: Date and time of Instance group's last update (RFC 3339 format).
272
+ :param pulumi.Input[Sequence[pulumi.Input['InstanceTemplateVolumeArgs']]] volumes: The template of Instance volume.
273
+ :param pulumi.Input[builtins.str] zone: `zone`) The zone in which the Instance template exists.
274
+ """
275
+ if cloud_init is not None:
276
+ pulumi.set(__self__, "cloud_init", cloud_init)
277
+ if commercial_type is not None:
278
+ pulumi.set(__self__, "commercial_type", commercial_type)
279
+ if created_at is not None:
280
+ pulumi.set(__self__, "created_at", created_at)
281
+ if image_id is not None:
282
+ pulumi.set(__self__, "image_id", image_id)
283
+ if name is not None:
284
+ pulumi.set(__self__, "name", name)
285
+ if placement_group_id is not None:
286
+ pulumi.set(__self__, "placement_group_id", placement_group_id)
287
+ if private_network_ids is not None:
288
+ pulumi.set(__self__, "private_network_ids", private_network_ids)
289
+ if project_id is not None:
290
+ pulumi.set(__self__, "project_id", project_id)
291
+ if public_ips_v4_count is not None:
292
+ pulumi.set(__self__, "public_ips_v4_count", public_ips_v4_count)
293
+ if public_ips_v6_count is not None:
294
+ pulumi.set(__self__, "public_ips_v6_count", public_ips_v6_count)
295
+ if security_group_id is not None:
296
+ pulumi.set(__self__, "security_group_id", security_group_id)
297
+ if status is not None:
298
+ pulumi.set(__self__, "status", status)
299
+ if tags is not None:
300
+ pulumi.set(__self__, "tags", tags)
301
+ if updated_at is not None:
302
+ pulumi.set(__self__, "updated_at", updated_at)
303
+ if volumes is not None:
304
+ pulumi.set(__self__, "volumes", volumes)
305
+ if zone is not None:
306
+ pulumi.set(__self__, "zone", zone)
307
+
308
+ @property
309
+ @pulumi.getter(name="cloudInit")
310
+ def cloud_init(self) -> Optional[pulumi.Input[builtins.str]]:
311
+ """
312
+ The instance image ID. Can be an ID of a marketplace or personal image. This image must be compatible with `volume` and `commercial_type` template.
313
+ """
314
+ return pulumi.get(self, "cloud_init")
315
+
316
+ @cloud_init.setter
317
+ def cloud_init(self, value: Optional[pulumi.Input[builtins.str]]):
318
+ pulumi.set(self, "cloud_init", value)
319
+
320
+ @property
321
+ @pulumi.getter(name="commercialType")
322
+ def commercial_type(self) -> Optional[pulumi.Input[builtins.str]]:
323
+ """
324
+ The name of Instance commercial type.
325
+ """
326
+ return pulumi.get(self, "commercial_type")
327
+
328
+ @commercial_type.setter
329
+ def commercial_type(self, value: Optional[pulumi.Input[builtins.str]]):
330
+ pulumi.set(self, "commercial_type", value)
331
+
332
+ @property
333
+ @pulumi.getter(name="createdAt")
334
+ def created_at(self) -> Optional[pulumi.Input[builtins.str]]:
335
+ """
336
+ Date and time of Instance group's creation (RFC 3339 format).
337
+ """
338
+ return pulumi.get(self, "created_at")
339
+
340
+ @created_at.setter
341
+ def created_at(self, value: Optional[pulumi.Input[builtins.str]]):
342
+ pulumi.set(self, "created_at", value)
343
+
344
+ @property
345
+ @pulumi.getter(name="imageId")
346
+ def image_id(self) -> Optional[pulumi.Input[builtins.str]]:
347
+ """
348
+ The instance image ID. Can be an ID of a marketplace or personal image. This image must be compatible with `volume` and `commercial_type` template.
349
+ """
350
+ return pulumi.get(self, "image_id")
351
+
352
+ @image_id.setter
353
+ def image_id(self, value: Optional[pulumi.Input[builtins.str]]):
354
+ pulumi.set(self, "image_id", value)
355
+
356
+ @property
357
+ @pulumi.getter
358
+ def name(self) -> Optional[pulumi.Input[builtins.str]]:
359
+ """
360
+ The Instance group template.
361
+ """
362
+ return pulumi.get(self, "name")
363
+
364
+ @name.setter
365
+ def name(self, value: Optional[pulumi.Input[builtins.str]]):
366
+ pulumi.set(self, "name", value)
367
+
368
+ @property
369
+ @pulumi.getter(name="placementGroupId")
370
+ def placement_group_id(self) -> Optional[pulumi.Input[builtins.str]]:
371
+ """
372
+ The instance placement group ID. This is optional, but it is highly recommended to set a preference for Instance location within Availability Zone.
373
+ """
374
+ return pulumi.get(self, "placement_group_id")
375
+
376
+ @placement_group_id.setter
377
+ def placement_group_id(self, value: Optional[pulumi.Input[builtins.str]]):
378
+ pulumi.set(self, "placement_group_id", value)
379
+
380
+ @property
381
+ @pulumi.getter(name="privateNetworkIds")
382
+ def private_network_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]:
383
+ """
384
+ The private Network IDs to attach to the new Instance.
385
+ """
386
+ return pulumi.get(self, "private_network_ids")
387
+
388
+ @private_network_ids.setter
389
+ def private_network_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]):
390
+ pulumi.set(self, "private_network_ids", value)
391
+
392
+ @property
393
+ @pulumi.getter(name="projectId")
394
+ def project_id(self) -> Optional[pulumi.Input[builtins.str]]:
395
+ """
396
+ `project_id`) The ID of the Project the Instance template is associated with.
397
+ """
398
+ return pulumi.get(self, "project_id")
399
+
400
+ @project_id.setter
401
+ def project_id(self, value: Optional[pulumi.Input[builtins.str]]):
402
+ pulumi.set(self, "project_id", value)
403
+
404
+ @property
405
+ @pulumi.getter(name="publicIpsV4Count")
406
+ def public_ips_v4_count(self) -> Optional[pulumi.Input[builtins.int]]:
407
+ """
408
+ The number of flexible IPv4 addresses to attach to the new Instance.
409
+ """
410
+ return pulumi.get(self, "public_ips_v4_count")
411
+
412
+ @public_ips_v4_count.setter
413
+ def public_ips_v4_count(self, value: Optional[pulumi.Input[builtins.int]]):
414
+ pulumi.set(self, "public_ips_v4_count", value)
415
+
416
+ @property
417
+ @pulumi.getter(name="publicIpsV6Count")
418
+ def public_ips_v6_count(self) -> Optional[pulumi.Input[builtins.int]]:
419
+ """
420
+ The number of flexible IPv6 addresses to attach to the new Instance.
421
+ """
422
+ return pulumi.get(self, "public_ips_v6_count")
423
+
424
+ @public_ips_v6_count.setter
425
+ def public_ips_v6_count(self, value: Optional[pulumi.Input[builtins.int]]):
426
+ pulumi.set(self, "public_ips_v6_count", value)
427
+
428
+ @property
429
+ @pulumi.getter(name="securityGroupId")
430
+ def security_group_id(self) -> Optional[pulumi.Input[builtins.str]]:
431
+ """
432
+ The instance security group ID.
433
+ """
434
+ return pulumi.get(self, "security_group_id")
435
+
436
+ @security_group_id.setter
437
+ def security_group_id(self, value: Optional[pulumi.Input[builtins.str]]):
438
+ pulumi.set(self, "security_group_id", value)
439
+
440
+ @property
441
+ @pulumi.getter
442
+ def status(self) -> Optional[pulumi.Input[builtins.str]]:
443
+ """
444
+ The Instance template status
445
+ """
446
+ return pulumi.get(self, "status")
447
+
448
+ @status.setter
449
+ def status(self, value: Optional[pulumi.Input[builtins.str]]):
450
+ pulumi.set(self, "status", value)
451
+
452
+ @property
453
+ @pulumi.getter
454
+ def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]:
455
+ """
456
+ The tags associated with the Instance template.
457
+ """
458
+ return pulumi.get(self, "tags")
459
+
460
+ @tags.setter
461
+ def tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]):
462
+ pulumi.set(self, "tags", value)
463
+
464
+ @property
465
+ @pulumi.getter(name="updatedAt")
466
+ def updated_at(self) -> Optional[pulumi.Input[builtins.str]]:
467
+ """
468
+ Date and time of Instance group's last update (RFC 3339 format).
469
+ """
470
+ return pulumi.get(self, "updated_at")
471
+
472
+ @updated_at.setter
473
+ def updated_at(self, value: Optional[pulumi.Input[builtins.str]]):
474
+ pulumi.set(self, "updated_at", value)
475
+
476
+ @property
477
+ @pulumi.getter
478
+ def volumes(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InstanceTemplateVolumeArgs']]]]:
479
+ """
480
+ The template of Instance volume.
481
+ """
482
+ return pulumi.get(self, "volumes")
483
+
484
+ @volumes.setter
485
+ def volumes(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceTemplateVolumeArgs']]]]):
486
+ pulumi.set(self, "volumes", value)
487
+
488
+ @property
489
+ @pulumi.getter
490
+ def zone(self) -> Optional[pulumi.Input[builtins.str]]:
491
+ """
492
+ `zone`) The zone in which the Instance template exists.
493
+ """
494
+ return pulumi.get(self, "zone")
495
+
496
+ @zone.setter
497
+ def zone(self, value: Optional[pulumi.Input[builtins.str]]):
498
+ pulumi.set(self, "zone", value)
499
+
500
+
501
+ @pulumi.type_token("scaleway:autoscaling/instanceTemplate:InstanceTemplate")
502
+ class InstanceTemplate(pulumi.CustomResource):
503
+ @overload
504
+ def __init__(__self__,
505
+ resource_name: str,
506
+ opts: Optional[pulumi.ResourceOptions] = None,
507
+ cloud_init: Optional[pulumi.Input[builtins.str]] = None,
508
+ commercial_type: Optional[pulumi.Input[builtins.str]] = None,
509
+ image_id: Optional[pulumi.Input[builtins.str]] = None,
510
+ name: Optional[pulumi.Input[builtins.str]] = None,
511
+ placement_group_id: Optional[pulumi.Input[builtins.str]] = None,
512
+ private_network_ids: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
513
+ project_id: Optional[pulumi.Input[builtins.str]] = None,
514
+ public_ips_v4_count: Optional[pulumi.Input[builtins.int]] = None,
515
+ public_ips_v6_count: Optional[pulumi.Input[builtins.int]] = None,
516
+ security_group_id: Optional[pulumi.Input[builtins.str]] = None,
517
+ tags: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
518
+ volumes: Optional[pulumi.Input[Sequence[pulumi.Input[Union['InstanceTemplateVolumeArgs', 'InstanceTemplateVolumeArgsDict']]]]] = None,
519
+ zone: Optional[pulumi.Input[builtins.str]] = None,
520
+ __props__=None):
521
+ """
522
+ Books and manages Autoscaling Instance templates.
523
+
524
+ ## Example Usage
525
+
526
+ ### Basic
527
+
528
+ ```python
529
+ import pulumi
530
+ import pulumiverse_scaleway as scaleway
531
+
532
+ main = scaleway.autoscaling.InstanceTemplate("main",
533
+ name="asg-template",
534
+ commercial_type="PLAY2-MICRO",
535
+ tags=[
536
+ "terraform-test",
537
+ "basic",
538
+ ],
539
+ volumes=[{
540
+ "name": "as-volume",
541
+ "volume_type": "sbs",
542
+ "boot": True,
543
+ "from_snapshot": {
544
+ "snapshot_id": main_scaleway_block_snapshot["id"],
545
+ },
546
+ "perf_iops": 5000,
547
+ }],
548
+ public_ips_v4_count=1,
549
+ private_network_ids=[main_scaleway_vpc_private_network["id"]])
550
+ ```
551
+
552
+ ## Import
553
+
554
+ Autoscaling Instance templates can be imported using `{zone}/{id}`, e.g.
555
+
556
+ bash
557
+
558
+ ```sh
559
+ $ pulumi import scaleway:autoscaling/instanceTemplate:InstanceTemplate main fr-par-1/11111111-1111-1111-1111-111111111111
560
+ ```
561
+
562
+ :param str resource_name: The name of the resource.
563
+ :param pulumi.ResourceOptions opts: Options for the resource.
564
+ :param pulumi.Input[builtins.str] cloud_init: The instance image ID. Can be an ID of a marketplace or personal image. This image must be compatible with `volume` and `commercial_type` template.
565
+ :param pulumi.Input[builtins.str] commercial_type: The name of Instance commercial type.
566
+ :param pulumi.Input[builtins.str] image_id: The instance image ID. Can be an ID of a marketplace or personal image. This image must be compatible with `volume` and `commercial_type` template.
567
+ :param pulumi.Input[builtins.str] name: The Instance group template.
568
+ :param pulumi.Input[builtins.str] placement_group_id: The instance placement group ID. This is optional, but it is highly recommended to set a preference for Instance location within Availability Zone.
569
+ :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] private_network_ids: The private Network IDs to attach to the new Instance.
570
+ :param pulumi.Input[builtins.str] project_id: `project_id`) The ID of the Project the Instance template is associated with.
571
+ :param pulumi.Input[builtins.int] public_ips_v4_count: The number of flexible IPv4 addresses to attach to the new Instance.
572
+ :param pulumi.Input[builtins.int] public_ips_v6_count: The number of flexible IPv6 addresses to attach to the new Instance.
573
+ :param pulumi.Input[builtins.str] security_group_id: The instance security group ID.
574
+ :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] tags: The tags associated with the Instance template.
575
+ :param pulumi.Input[Sequence[pulumi.Input[Union['InstanceTemplateVolumeArgs', 'InstanceTemplateVolumeArgsDict']]]] volumes: The template of Instance volume.
576
+ :param pulumi.Input[builtins.str] zone: `zone`) The zone in which the Instance template exists.
577
+ """
578
+ ...
579
+ @overload
580
+ def __init__(__self__,
581
+ resource_name: str,
582
+ args: InstanceTemplateArgs,
583
+ opts: Optional[pulumi.ResourceOptions] = None):
584
+ """
585
+ Books and manages Autoscaling Instance templates.
586
+
587
+ ## Example Usage
588
+
589
+ ### Basic
590
+
591
+ ```python
592
+ import pulumi
593
+ import pulumiverse_scaleway as scaleway
594
+
595
+ main = scaleway.autoscaling.InstanceTemplate("main",
596
+ name="asg-template",
597
+ commercial_type="PLAY2-MICRO",
598
+ tags=[
599
+ "terraform-test",
600
+ "basic",
601
+ ],
602
+ volumes=[{
603
+ "name": "as-volume",
604
+ "volume_type": "sbs",
605
+ "boot": True,
606
+ "from_snapshot": {
607
+ "snapshot_id": main_scaleway_block_snapshot["id"],
608
+ },
609
+ "perf_iops": 5000,
610
+ }],
611
+ public_ips_v4_count=1,
612
+ private_network_ids=[main_scaleway_vpc_private_network["id"]])
613
+ ```
614
+
615
+ ## Import
616
+
617
+ Autoscaling Instance templates can be imported using `{zone}/{id}`, e.g.
618
+
619
+ bash
620
+
621
+ ```sh
622
+ $ pulumi import scaleway:autoscaling/instanceTemplate:InstanceTemplate main fr-par-1/11111111-1111-1111-1111-111111111111
623
+ ```
624
+
625
+ :param str resource_name: The name of the resource.
626
+ :param InstanceTemplateArgs args: The arguments to use to populate this resource's properties.
627
+ :param pulumi.ResourceOptions opts: Options for the resource.
628
+ """
629
+ ...
630
+ def __init__(__self__, resource_name: str, *args, **kwargs):
631
+ resource_args, opts = _utilities.get_resource_args_opts(InstanceTemplateArgs, pulumi.ResourceOptions, *args, **kwargs)
632
+ if resource_args is not None:
633
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
634
+ else:
635
+ __self__._internal_init(resource_name, *args, **kwargs)
636
+
637
+ def _internal_init(__self__,
638
+ resource_name: str,
639
+ opts: Optional[pulumi.ResourceOptions] = None,
640
+ cloud_init: Optional[pulumi.Input[builtins.str]] = None,
641
+ commercial_type: Optional[pulumi.Input[builtins.str]] = None,
642
+ image_id: Optional[pulumi.Input[builtins.str]] = None,
643
+ name: Optional[pulumi.Input[builtins.str]] = None,
644
+ placement_group_id: Optional[pulumi.Input[builtins.str]] = None,
645
+ private_network_ids: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
646
+ project_id: Optional[pulumi.Input[builtins.str]] = None,
647
+ public_ips_v4_count: Optional[pulumi.Input[builtins.int]] = None,
648
+ public_ips_v6_count: Optional[pulumi.Input[builtins.int]] = None,
649
+ security_group_id: Optional[pulumi.Input[builtins.str]] = None,
650
+ tags: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
651
+ volumes: Optional[pulumi.Input[Sequence[pulumi.Input[Union['InstanceTemplateVolumeArgs', 'InstanceTemplateVolumeArgsDict']]]]] = None,
652
+ zone: Optional[pulumi.Input[builtins.str]] = None,
653
+ __props__=None):
654
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
655
+ if not isinstance(opts, pulumi.ResourceOptions):
656
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
657
+ if opts.id is None:
658
+ if __props__ is not None:
659
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
660
+ __props__ = InstanceTemplateArgs.__new__(InstanceTemplateArgs)
661
+
662
+ __props__.__dict__["cloud_init"] = cloud_init
663
+ if commercial_type is None and not opts.urn:
664
+ raise TypeError("Missing required property 'commercial_type'")
665
+ __props__.__dict__["commercial_type"] = commercial_type
666
+ __props__.__dict__["image_id"] = image_id
667
+ __props__.__dict__["name"] = name
668
+ __props__.__dict__["placement_group_id"] = placement_group_id
669
+ __props__.__dict__["private_network_ids"] = private_network_ids
670
+ __props__.__dict__["project_id"] = project_id
671
+ __props__.__dict__["public_ips_v4_count"] = public_ips_v4_count
672
+ __props__.__dict__["public_ips_v6_count"] = public_ips_v6_count
673
+ __props__.__dict__["security_group_id"] = security_group_id
674
+ __props__.__dict__["tags"] = tags
675
+ __props__.__dict__["volumes"] = volumes
676
+ __props__.__dict__["zone"] = zone
677
+ __props__.__dict__["created_at"] = None
678
+ __props__.__dict__["status"] = None
679
+ __props__.__dict__["updated_at"] = None
680
+ super(InstanceTemplate, __self__).__init__(
681
+ 'scaleway:autoscaling/instanceTemplate:InstanceTemplate',
682
+ resource_name,
683
+ __props__,
684
+ opts)
685
+
686
+ @staticmethod
687
+ def get(resource_name: str,
688
+ id: pulumi.Input[str],
689
+ opts: Optional[pulumi.ResourceOptions] = None,
690
+ cloud_init: Optional[pulumi.Input[builtins.str]] = None,
691
+ commercial_type: Optional[pulumi.Input[builtins.str]] = None,
692
+ created_at: Optional[pulumi.Input[builtins.str]] = None,
693
+ image_id: Optional[pulumi.Input[builtins.str]] = None,
694
+ name: Optional[pulumi.Input[builtins.str]] = None,
695
+ placement_group_id: Optional[pulumi.Input[builtins.str]] = None,
696
+ private_network_ids: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
697
+ project_id: Optional[pulumi.Input[builtins.str]] = None,
698
+ public_ips_v4_count: Optional[pulumi.Input[builtins.int]] = None,
699
+ public_ips_v6_count: Optional[pulumi.Input[builtins.int]] = None,
700
+ security_group_id: Optional[pulumi.Input[builtins.str]] = None,
701
+ status: Optional[pulumi.Input[builtins.str]] = None,
702
+ tags: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
703
+ updated_at: Optional[pulumi.Input[builtins.str]] = None,
704
+ volumes: Optional[pulumi.Input[Sequence[pulumi.Input[Union['InstanceTemplateVolumeArgs', 'InstanceTemplateVolumeArgsDict']]]]] = None,
705
+ zone: Optional[pulumi.Input[builtins.str]] = None) -> 'InstanceTemplate':
706
+ """
707
+ Get an existing InstanceTemplate resource's state with the given name, id, and optional extra
708
+ properties used to qualify the lookup.
709
+
710
+ :param str resource_name: The unique name of the resulting resource.
711
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
712
+ :param pulumi.ResourceOptions opts: Options for the resource.
713
+ :param pulumi.Input[builtins.str] cloud_init: The instance image ID. Can be an ID of a marketplace or personal image. This image must be compatible with `volume` and `commercial_type` template.
714
+ :param pulumi.Input[builtins.str] commercial_type: The name of Instance commercial type.
715
+ :param pulumi.Input[builtins.str] created_at: Date and time of Instance group's creation (RFC 3339 format).
716
+ :param pulumi.Input[builtins.str] image_id: The instance image ID. Can be an ID of a marketplace or personal image. This image must be compatible with `volume` and `commercial_type` template.
717
+ :param pulumi.Input[builtins.str] name: The Instance group template.
718
+ :param pulumi.Input[builtins.str] placement_group_id: The instance placement group ID. This is optional, but it is highly recommended to set a preference for Instance location within Availability Zone.
719
+ :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] private_network_ids: The private Network IDs to attach to the new Instance.
720
+ :param pulumi.Input[builtins.str] project_id: `project_id`) The ID of the Project the Instance template is associated with.
721
+ :param pulumi.Input[builtins.int] public_ips_v4_count: The number of flexible IPv4 addresses to attach to the new Instance.
722
+ :param pulumi.Input[builtins.int] public_ips_v6_count: The number of flexible IPv6 addresses to attach to the new Instance.
723
+ :param pulumi.Input[builtins.str] security_group_id: The instance security group ID.
724
+ :param pulumi.Input[builtins.str] status: The Instance template status
725
+ :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] tags: The tags associated with the Instance template.
726
+ :param pulumi.Input[builtins.str] updated_at: Date and time of Instance group's last update (RFC 3339 format).
727
+ :param pulumi.Input[Sequence[pulumi.Input[Union['InstanceTemplateVolumeArgs', 'InstanceTemplateVolumeArgsDict']]]] volumes: The template of Instance volume.
728
+ :param pulumi.Input[builtins.str] zone: `zone`) The zone in which the Instance template exists.
729
+ """
730
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
731
+
732
+ __props__ = _InstanceTemplateState.__new__(_InstanceTemplateState)
733
+
734
+ __props__.__dict__["cloud_init"] = cloud_init
735
+ __props__.__dict__["commercial_type"] = commercial_type
736
+ __props__.__dict__["created_at"] = created_at
737
+ __props__.__dict__["image_id"] = image_id
738
+ __props__.__dict__["name"] = name
739
+ __props__.__dict__["placement_group_id"] = placement_group_id
740
+ __props__.__dict__["private_network_ids"] = private_network_ids
741
+ __props__.__dict__["project_id"] = project_id
742
+ __props__.__dict__["public_ips_v4_count"] = public_ips_v4_count
743
+ __props__.__dict__["public_ips_v6_count"] = public_ips_v6_count
744
+ __props__.__dict__["security_group_id"] = security_group_id
745
+ __props__.__dict__["status"] = status
746
+ __props__.__dict__["tags"] = tags
747
+ __props__.__dict__["updated_at"] = updated_at
748
+ __props__.__dict__["volumes"] = volumes
749
+ __props__.__dict__["zone"] = zone
750
+ return InstanceTemplate(resource_name, opts=opts, __props__=__props__)
751
+
752
+ @property
753
+ @pulumi.getter(name="cloudInit")
754
+ def cloud_init(self) -> pulumi.Output[Optional[builtins.str]]:
755
+ """
756
+ The instance image ID. Can be an ID of a marketplace or personal image. This image must be compatible with `volume` and `commercial_type` template.
757
+ """
758
+ return pulumi.get(self, "cloud_init")
759
+
760
+ @property
761
+ @pulumi.getter(name="commercialType")
762
+ def commercial_type(self) -> pulumi.Output[builtins.str]:
763
+ """
764
+ The name of Instance commercial type.
765
+ """
766
+ return pulumi.get(self, "commercial_type")
767
+
768
+ @property
769
+ @pulumi.getter(name="createdAt")
770
+ def created_at(self) -> pulumi.Output[builtins.str]:
771
+ """
772
+ Date and time of Instance group's creation (RFC 3339 format).
773
+ """
774
+ return pulumi.get(self, "created_at")
775
+
776
+ @property
777
+ @pulumi.getter(name="imageId")
778
+ def image_id(self) -> pulumi.Output[Optional[builtins.str]]:
779
+ """
780
+ The instance image ID. Can be an ID of a marketplace or personal image. This image must be compatible with `volume` and `commercial_type` template.
781
+ """
782
+ return pulumi.get(self, "image_id")
783
+
784
+ @property
785
+ @pulumi.getter
786
+ def name(self) -> pulumi.Output[builtins.str]:
787
+ """
788
+ The Instance group template.
789
+ """
790
+ return pulumi.get(self, "name")
791
+
792
+ @property
793
+ @pulumi.getter(name="placementGroupId")
794
+ def placement_group_id(self) -> pulumi.Output[Optional[builtins.str]]:
795
+ """
796
+ The instance placement group ID. This is optional, but it is highly recommended to set a preference for Instance location within Availability Zone.
797
+ """
798
+ return pulumi.get(self, "placement_group_id")
799
+
800
+ @property
801
+ @pulumi.getter(name="privateNetworkIds")
802
+ def private_network_ids(self) -> pulumi.Output[Optional[Sequence[builtins.str]]]:
803
+ """
804
+ The private Network IDs to attach to the new Instance.
805
+ """
806
+ return pulumi.get(self, "private_network_ids")
807
+
808
+ @property
809
+ @pulumi.getter(name="projectId")
810
+ def project_id(self) -> pulumi.Output[builtins.str]:
811
+ """
812
+ `project_id`) The ID of the Project the Instance template is associated with.
813
+ """
814
+ return pulumi.get(self, "project_id")
815
+
816
+ @property
817
+ @pulumi.getter(name="publicIpsV4Count")
818
+ def public_ips_v4_count(self) -> pulumi.Output[Optional[builtins.int]]:
819
+ """
820
+ The number of flexible IPv4 addresses to attach to the new Instance.
821
+ """
822
+ return pulumi.get(self, "public_ips_v4_count")
823
+
824
+ @property
825
+ @pulumi.getter(name="publicIpsV6Count")
826
+ def public_ips_v6_count(self) -> pulumi.Output[Optional[builtins.int]]:
827
+ """
828
+ The number of flexible IPv6 addresses to attach to the new Instance.
829
+ """
830
+ return pulumi.get(self, "public_ips_v6_count")
831
+
832
+ @property
833
+ @pulumi.getter(name="securityGroupId")
834
+ def security_group_id(self) -> pulumi.Output[Optional[builtins.str]]:
835
+ """
836
+ The instance security group ID.
837
+ """
838
+ return pulumi.get(self, "security_group_id")
839
+
840
+ @property
841
+ @pulumi.getter
842
+ def status(self) -> pulumi.Output[builtins.str]:
843
+ """
844
+ The Instance template status
845
+ """
846
+ return pulumi.get(self, "status")
847
+
848
+ @property
849
+ @pulumi.getter
850
+ def tags(self) -> pulumi.Output[Optional[Sequence[builtins.str]]]:
851
+ """
852
+ The tags associated with the Instance template.
853
+ """
854
+ return pulumi.get(self, "tags")
855
+
856
+ @property
857
+ @pulumi.getter(name="updatedAt")
858
+ def updated_at(self) -> pulumi.Output[builtins.str]:
859
+ """
860
+ Date and time of Instance group's last update (RFC 3339 format).
861
+ """
862
+ return pulumi.get(self, "updated_at")
863
+
864
+ @property
865
+ @pulumi.getter
866
+ def volumes(self) -> pulumi.Output[Optional[Sequence['outputs.InstanceTemplateVolume']]]:
867
+ """
868
+ The template of Instance volume.
869
+ """
870
+ return pulumi.get(self, "volumes")
871
+
872
+ @property
873
+ @pulumi.getter
874
+ def zone(self) -> pulumi.Output[builtins.str]:
875
+ """
876
+ `zone`) The zone in which the Instance template exists.
877
+ """
878
+ return pulumi.get(self, "zone")
879
+