pulumi-digitalocean 4.27.0__py3-none-any.whl → 4.39.0a1736833057__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 pulumi-digitalocean might be problematic. Click here for more details.
- pulumi_digitalocean/__init__.py +75 -0
- pulumi_digitalocean/_enums.py +131 -52
- pulumi_digitalocean/_inputs.py +5767 -399
- pulumi_digitalocean/_utilities.py +41 -5
- pulumi_digitalocean/app.py +199 -67
- pulumi_digitalocean/cdn.py +20 -23
- pulumi_digitalocean/certificate.py +45 -42
- pulumi_digitalocean/config/__init__.pyi +5 -0
- pulumi_digitalocean/config/vars.py +5 -0
- pulumi_digitalocean/container_registry.py +11 -6
- pulumi_digitalocean/container_registry_docker_credentials.py +53 -12
- pulumi_digitalocean/custom_image.py +13 -8
- pulumi_digitalocean/database_cluster.py +298 -120
- pulumi_digitalocean/database_connection_pool.py +15 -10
- pulumi_digitalocean/database_db.py +19 -12
- pulumi_digitalocean/database_firewall.py +78 -75
- pulumi_digitalocean/database_kafka_config.py +1040 -0
- pulumi_digitalocean/database_kafka_topic.py +66 -61
- pulumi_digitalocean/database_mongodb_config.py +452 -0
- pulumi_digitalocean/database_mysql_config.py +15 -12
- pulumi_digitalocean/database_opensearch_config.py +2069 -0
- pulumi_digitalocean/database_postgresql_config.py +2614 -0
- pulumi_digitalocean/database_redis_config.py +29 -12
- pulumi_digitalocean/database_replica.py +29 -24
- pulumi_digitalocean/database_user.py +90 -75
- pulumi_digitalocean/dns_record.py +13 -8
- pulumi_digitalocean/domain.py +7 -6
- pulumi_digitalocean/droplet.py +89 -31
- pulumi_digitalocean/droplet_autoscale.py +474 -0
- pulumi_digitalocean/droplet_snapshot.py +23 -14
- pulumi_digitalocean/firewall.py +118 -106
- pulumi_digitalocean/floating_ip.py +19 -16
- pulumi_digitalocean/floating_ip_assignment.py +19 -16
- pulumi_digitalocean/get_account.py +18 -9
- pulumi_digitalocean/get_app.py +57 -10
- pulumi_digitalocean/get_certificate.py +19 -9
- pulumi_digitalocean/get_container_registry.py +19 -9
- pulumi_digitalocean/get_database_ca.py +14 -9
- pulumi_digitalocean/get_database_cluster.py +119 -11
- pulumi_digitalocean/get_database_connection_pool.py +25 -9
- pulumi_digitalocean/get_database_replica.py +29 -9
- pulumi_digitalocean/get_database_user.py +21 -9
- pulumi_digitalocean/get_domain.py +16 -9
- pulumi_digitalocean/get_domains.py +34 -27
- pulumi_digitalocean/get_droplet.py +66 -23
- pulumi_digitalocean/get_droplet_autoscale.py +197 -0
- pulumi_digitalocean/get_droplet_snapshot.py +36 -23
- pulumi_digitalocean/get_droplets.py +80 -54
- pulumi_digitalocean/get_firewall.py +29 -13
- pulumi_digitalocean/get_floating_ip.py +16 -9
- pulumi_digitalocean/get_image.py +42 -27
- pulumi_digitalocean/get_images.py +56 -53
- pulumi_digitalocean/get_kubernetes_cluster.py +53 -6
- pulumi_digitalocean/get_kubernetes_versions.py +43 -41
- pulumi_digitalocean/get_load_balancer.py +81 -17
- pulumi_digitalocean/get_project.py +23 -9
- pulumi_digitalocean/get_projects.py +56 -53
- pulumi_digitalocean/get_record.py +23 -9
- pulumi_digitalocean/get_records.py +62 -13
- pulumi_digitalocean/get_region.py +17 -9
- pulumi_digitalocean/get_regions.py +56 -53
- pulumi_digitalocean/get_reserved_ip.py +16 -9
- pulumi_digitalocean/get_reserved_ipv6.py +118 -0
- pulumi_digitalocean/get_sizes.py +24 -13
- pulumi_digitalocean/get_spaces_bucket.py +18 -9
- pulumi_digitalocean/get_spaces_bucket_object.py +41 -14
- pulumi_digitalocean/get_spaces_bucket_objects.py +26 -5
- pulumi_digitalocean/get_spaces_buckets.py +48 -45
- pulumi_digitalocean/get_ssh_key.py +27 -19
- pulumi_digitalocean/get_ssh_keys.py +40 -37
- pulumi_digitalocean/get_tag.py +31 -19
- pulumi_digitalocean/get_tags.py +32 -25
- pulumi_digitalocean/get_volume.py +35 -23
- pulumi_digitalocean/get_volume_snapshot.py +35 -21
- pulumi_digitalocean/get_vpc.py +33 -23
- pulumi_digitalocean/get_vpc_peering.py +244 -0
- pulumi_digitalocean/kubernetes_cluster.py +86 -35
- pulumi_digitalocean/kubernetes_node_pool.py +46 -43
- pulumi_digitalocean/load_balancer.py +320 -157
- pulumi_digitalocean/monitor_alert.py +17 -12
- pulumi_digitalocean/outputs.py +3419 -344
- pulumi_digitalocean/project.py +19 -16
- pulumi_digitalocean/project_resources.py +11 -8
- pulumi_digitalocean/provider.py +5 -0
- pulumi_digitalocean/pulumi-plugin.json +2 -1
- pulumi_digitalocean/reserved_ip.py +19 -16
- pulumi_digitalocean/reserved_ip_assignment.py +19 -16
- pulumi_digitalocean/reserved_ipv6.py +232 -0
- pulumi_digitalocean/reserved_ipv6_assignment.py +171 -0
- pulumi_digitalocean/spaces_bucket.py +70 -79
- pulumi_digitalocean/spaces_bucket_cors_configuration.py +30 -25
- pulumi_digitalocean/spaces_bucket_object.py +11 -12
- pulumi_digitalocean/spaces_bucket_policy.py +21 -16
- pulumi_digitalocean/ssh_key.py +19 -10
- pulumi_digitalocean/tag.py +13 -10
- pulumi_digitalocean/uptime_alert.py +10 -5
- pulumi_digitalocean/uptime_check.py +5 -0
- pulumi_digitalocean/volume.py +47 -50
- pulumi_digitalocean/volume_attachment.py +25 -20
- pulumi_digitalocean/volume_snapshot.py +17 -10
- pulumi_digitalocean/vpc.py +27 -22
- pulumi_digitalocean/vpc_peering.py +378 -0
- {pulumi_digitalocean-4.27.0.dist-info → pulumi_digitalocean-4.39.0a1736833057.dist-info}/METADATA +7 -6
- pulumi_digitalocean-4.39.0a1736833057.dist-info/RECORD +108 -0
- {pulumi_digitalocean-4.27.0.dist-info → pulumi_digitalocean-4.39.0a1736833057.dist-info}/WHEEL +1 -1
- pulumi_digitalocean-4.27.0.dist-info/RECORD +0 -97
- {pulumi_digitalocean-4.27.0.dist-info → pulumi_digitalocean-4.39.0a1736833057.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,474 @@
|
|
|
1
|
+
# coding=utf-8
|
|
2
|
+
# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
|
|
3
|
+
# *** Do not edit by hand unless you're certain you know what you are doing! ***
|
|
4
|
+
|
|
5
|
+
import copy
|
|
6
|
+
import warnings
|
|
7
|
+
import sys
|
|
8
|
+
import pulumi
|
|
9
|
+
import pulumi.runtime
|
|
10
|
+
from typing import Any, Mapping, Optional, Sequence, Union, overload
|
|
11
|
+
if sys.version_info >= (3, 11):
|
|
12
|
+
from typing import NotRequired, TypedDict, TypeAlias
|
|
13
|
+
else:
|
|
14
|
+
from typing_extensions import NotRequired, TypedDict, TypeAlias
|
|
15
|
+
from . import _utilities
|
|
16
|
+
from . import outputs
|
|
17
|
+
from ._inputs import *
|
|
18
|
+
|
|
19
|
+
__all__ = ['DropletAutoscaleArgs', 'DropletAutoscale']
|
|
20
|
+
|
|
21
|
+
@pulumi.input_type
|
|
22
|
+
class DropletAutoscaleArgs:
|
|
23
|
+
def __init__(__self__, *,
|
|
24
|
+
config: pulumi.Input['DropletAutoscaleConfigArgs'],
|
|
25
|
+
droplet_template: pulumi.Input['DropletAutoscaleDropletTemplateArgs'],
|
|
26
|
+
name: Optional[pulumi.Input[str]] = None):
|
|
27
|
+
"""
|
|
28
|
+
The set of arguments for constructing a DropletAutoscale resource.
|
|
29
|
+
:param pulumi.Input['DropletAutoscaleConfigArgs'] config: The configuration parameters for Droplet Autoscale pool, the supported arguments are
|
|
30
|
+
documented below.
|
|
31
|
+
:param pulumi.Input['DropletAutoscaleDropletTemplateArgs'] droplet_template: The droplet template parameters for Droplet Autoscale pool, the supported arguments
|
|
32
|
+
are documented below.
|
|
33
|
+
:param pulumi.Input[str] name: The name of the Droplet Autoscale pool.
|
|
34
|
+
"""
|
|
35
|
+
pulumi.set(__self__, "config", config)
|
|
36
|
+
pulumi.set(__self__, "droplet_template", droplet_template)
|
|
37
|
+
if name is not None:
|
|
38
|
+
pulumi.set(__self__, "name", name)
|
|
39
|
+
|
|
40
|
+
@property
|
|
41
|
+
@pulumi.getter
|
|
42
|
+
def config(self) -> pulumi.Input['DropletAutoscaleConfigArgs']:
|
|
43
|
+
"""
|
|
44
|
+
The configuration parameters for Droplet Autoscale pool, the supported arguments are
|
|
45
|
+
documented below.
|
|
46
|
+
"""
|
|
47
|
+
return pulumi.get(self, "config")
|
|
48
|
+
|
|
49
|
+
@config.setter
|
|
50
|
+
def config(self, value: pulumi.Input['DropletAutoscaleConfigArgs']):
|
|
51
|
+
pulumi.set(self, "config", value)
|
|
52
|
+
|
|
53
|
+
@property
|
|
54
|
+
@pulumi.getter(name="dropletTemplate")
|
|
55
|
+
def droplet_template(self) -> pulumi.Input['DropletAutoscaleDropletTemplateArgs']:
|
|
56
|
+
"""
|
|
57
|
+
The droplet template parameters for Droplet Autoscale pool, the supported arguments
|
|
58
|
+
are documented below.
|
|
59
|
+
"""
|
|
60
|
+
return pulumi.get(self, "droplet_template")
|
|
61
|
+
|
|
62
|
+
@droplet_template.setter
|
|
63
|
+
def droplet_template(self, value: pulumi.Input['DropletAutoscaleDropletTemplateArgs']):
|
|
64
|
+
pulumi.set(self, "droplet_template", value)
|
|
65
|
+
|
|
66
|
+
@property
|
|
67
|
+
@pulumi.getter
|
|
68
|
+
def name(self) -> Optional[pulumi.Input[str]]:
|
|
69
|
+
"""
|
|
70
|
+
The name of the Droplet Autoscale pool.
|
|
71
|
+
"""
|
|
72
|
+
return pulumi.get(self, "name")
|
|
73
|
+
|
|
74
|
+
@name.setter
|
|
75
|
+
def name(self, value: Optional[pulumi.Input[str]]):
|
|
76
|
+
pulumi.set(self, "name", value)
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
@pulumi.input_type
|
|
80
|
+
class _DropletAutoscaleState:
|
|
81
|
+
def __init__(__self__, *,
|
|
82
|
+
config: Optional[pulumi.Input['DropletAutoscaleConfigArgs']] = None,
|
|
83
|
+
created_at: Optional[pulumi.Input[str]] = None,
|
|
84
|
+
current_utilizations: Optional[pulumi.Input[Sequence[pulumi.Input['DropletAutoscaleCurrentUtilizationArgs']]]] = None,
|
|
85
|
+
droplet_template: Optional[pulumi.Input['DropletAutoscaleDropletTemplateArgs']] = None,
|
|
86
|
+
name: Optional[pulumi.Input[str]] = None,
|
|
87
|
+
status: Optional[pulumi.Input[str]] = None,
|
|
88
|
+
updated_at: Optional[pulumi.Input[str]] = None):
|
|
89
|
+
"""
|
|
90
|
+
Input properties used for looking up and filtering DropletAutoscale resources.
|
|
91
|
+
:param pulumi.Input['DropletAutoscaleConfigArgs'] config: The configuration parameters for Droplet Autoscale pool, the supported arguments are
|
|
92
|
+
documented below.
|
|
93
|
+
:param pulumi.Input[str] created_at: Created at timestamp for the Droplet Autoscale pool.
|
|
94
|
+
:param pulumi.Input[Sequence[pulumi.Input['DropletAutoscaleCurrentUtilizationArgs']]] current_utilizations: The current average resource utilization of the Droplet Autoscale pool, this attribute further
|
|
95
|
+
embeds `memory` and `cpu` attributes to respectively report utilization data.
|
|
96
|
+
:param pulumi.Input['DropletAutoscaleDropletTemplateArgs'] droplet_template: The droplet template parameters for Droplet Autoscale pool, the supported arguments
|
|
97
|
+
are documented below.
|
|
98
|
+
:param pulumi.Input[str] name: The name of the Droplet Autoscale pool.
|
|
99
|
+
:param pulumi.Input[str] status: Droplet Autoscale pool health status; this reflects if the pool is currently healthy and ready to accept
|
|
100
|
+
traffic, or in an error state and needs user intervention.
|
|
101
|
+
:param pulumi.Input[str] updated_at: Updated at timestamp for the Droplet Autoscale pool.
|
|
102
|
+
"""
|
|
103
|
+
if config is not None:
|
|
104
|
+
pulumi.set(__self__, "config", config)
|
|
105
|
+
if created_at is not None:
|
|
106
|
+
pulumi.set(__self__, "created_at", created_at)
|
|
107
|
+
if current_utilizations is not None:
|
|
108
|
+
pulumi.set(__self__, "current_utilizations", current_utilizations)
|
|
109
|
+
if droplet_template is not None:
|
|
110
|
+
pulumi.set(__self__, "droplet_template", droplet_template)
|
|
111
|
+
if name is not None:
|
|
112
|
+
pulumi.set(__self__, "name", name)
|
|
113
|
+
if status is not None:
|
|
114
|
+
pulumi.set(__self__, "status", status)
|
|
115
|
+
if updated_at is not None:
|
|
116
|
+
pulumi.set(__self__, "updated_at", updated_at)
|
|
117
|
+
|
|
118
|
+
@property
|
|
119
|
+
@pulumi.getter
|
|
120
|
+
def config(self) -> Optional[pulumi.Input['DropletAutoscaleConfigArgs']]:
|
|
121
|
+
"""
|
|
122
|
+
The configuration parameters for Droplet Autoscale pool, the supported arguments are
|
|
123
|
+
documented below.
|
|
124
|
+
"""
|
|
125
|
+
return pulumi.get(self, "config")
|
|
126
|
+
|
|
127
|
+
@config.setter
|
|
128
|
+
def config(self, value: Optional[pulumi.Input['DropletAutoscaleConfigArgs']]):
|
|
129
|
+
pulumi.set(self, "config", value)
|
|
130
|
+
|
|
131
|
+
@property
|
|
132
|
+
@pulumi.getter(name="createdAt")
|
|
133
|
+
def created_at(self) -> Optional[pulumi.Input[str]]:
|
|
134
|
+
"""
|
|
135
|
+
Created at timestamp for the Droplet Autoscale pool.
|
|
136
|
+
"""
|
|
137
|
+
return pulumi.get(self, "created_at")
|
|
138
|
+
|
|
139
|
+
@created_at.setter
|
|
140
|
+
def created_at(self, value: Optional[pulumi.Input[str]]):
|
|
141
|
+
pulumi.set(self, "created_at", value)
|
|
142
|
+
|
|
143
|
+
@property
|
|
144
|
+
@pulumi.getter(name="currentUtilizations")
|
|
145
|
+
def current_utilizations(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['DropletAutoscaleCurrentUtilizationArgs']]]]:
|
|
146
|
+
"""
|
|
147
|
+
The current average resource utilization of the Droplet Autoscale pool, this attribute further
|
|
148
|
+
embeds `memory` and `cpu` attributes to respectively report utilization data.
|
|
149
|
+
"""
|
|
150
|
+
return pulumi.get(self, "current_utilizations")
|
|
151
|
+
|
|
152
|
+
@current_utilizations.setter
|
|
153
|
+
def current_utilizations(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['DropletAutoscaleCurrentUtilizationArgs']]]]):
|
|
154
|
+
pulumi.set(self, "current_utilizations", value)
|
|
155
|
+
|
|
156
|
+
@property
|
|
157
|
+
@pulumi.getter(name="dropletTemplate")
|
|
158
|
+
def droplet_template(self) -> Optional[pulumi.Input['DropletAutoscaleDropletTemplateArgs']]:
|
|
159
|
+
"""
|
|
160
|
+
The droplet template parameters for Droplet Autoscale pool, the supported arguments
|
|
161
|
+
are documented below.
|
|
162
|
+
"""
|
|
163
|
+
return pulumi.get(self, "droplet_template")
|
|
164
|
+
|
|
165
|
+
@droplet_template.setter
|
|
166
|
+
def droplet_template(self, value: Optional[pulumi.Input['DropletAutoscaleDropletTemplateArgs']]):
|
|
167
|
+
pulumi.set(self, "droplet_template", value)
|
|
168
|
+
|
|
169
|
+
@property
|
|
170
|
+
@pulumi.getter
|
|
171
|
+
def name(self) -> Optional[pulumi.Input[str]]:
|
|
172
|
+
"""
|
|
173
|
+
The name of the Droplet Autoscale pool.
|
|
174
|
+
"""
|
|
175
|
+
return pulumi.get(self, "name")
|
|
176
|
+
|
|
177
|
+
@name.setter
|
|
178
|
+
def name(self, value: Optional[pulumi.Input[str]]):
|
|
179
|
+
pulumi.set(self, "name", value)
|
|
180
|
+
|
|
181
|
+
@property
|
|
182
|
+
@pulumi.getter
|
|
183
|
+
def status(self) -> Optional[pulumi.Input[str]]:
|
|
184
|
+
"""
|
|
185
|
+
Droplet Autoscale pool health status; this reflects if the pool is currently healthy and ready to accept
|
|
186
|
+
traffic, or in an error state and needs user intervention.
|
|
187
|
+
"""
|
|
188
|
+
return pulumi.get(self, "status")
|
|
189
|
+
|
|
190
|
+
@status.setter
|
|
191
|
+
def status(self, value: Optional[pulumi.Input[str]]):
|
|
192
|
+
pulumi.set(self, "status", value)
|
|
193
|
+
|
|
194
|
+
@property
|
|
195
|
+
@pulumi.getter(name="updatedAt")
|
|
196
|
+
def updated_at(self) -> Optional[pulumi.Input[str]]:
|
|
197
|
+
"""
|
|
198
|
+
Updated at timestamp for the Droplet Autoscale pool.
|
|
199
|
+
"""
|
|
200
|
+
return pulumi.get(self, "updated_at")
|
|
201
|
+
|
|
202
|
+
@updated_at.setter
|
|
203
|
+
def updated_at(self, value: Optional[pulumi.Input[str]]):
|
|
204
|
+
pulumi.set(self, "updated_at", value)
|
|
205
|
+
|
|
206
|
+
|
|
207
|
+
class DropletAutoscale(pulumi.CustomResource):
|
|
208
|
+
@overload
|
|
209
|
+
def __init__(__self__,
|
|
210
|
+
resource_name: str,
|
|
211
|
+
opts: Optional[pulumi.ResourceOptions] = None,
|
|
212
|
+
config: Optional[pulumi.Input[Union['DropletAutoscaleConfigArgs', 'DropletAutoscaleConfigArgsDict']]] = None,
|
|
213
|
+
droplet_template: Optional[pulumi.Input[Union['DropletAutoscaleDropletTemplateArgs', 'DropletAutoscaleDropletTemplateArgsDict']]] = None,
|
|
214
|
+
name: Optional[pulumi.Input[str]] = None,
|
|
215
|
+
__props__=None):
|
|
216
|
+
"""
|
|
217
|
+
Provides a DigitalOcean Droplet Autoscale resource. This can be used to create, modify,
|
|
218
|
+
read and delete Droplet Autoscale pools.
|
|
219
|
+
|
|
220
|
+
## Example Usage
|
|
221
|
+
|
|
222
|
+
```python
|
|
223
|
+
import pulumi
|
|
224
|
+
import pulumi_digitalocean as digitalocean
|
|
225
|
+
import pulumi_std as std
|
|
226
|
+
|
|
227
|
+
my_ssh_key = digitalocean.SshKey("my-ssh-key",
|
|
228
|
+
name="terraform-example",
|
|
229
|
+
public_key=std.file(input="/Users/terraform/.ssh/id_rsa.pub").result)
|
|
230
|
+
my_tag = digitalocean.Tag("my-tag", name="terraform-example")
|
|
231
|
+
my_autoscale_pool = digitalocean.DropletAutoscale("my-autoscale-pool",
|
|
232
|
+
name="terraform-example",
|
|
233
|
+
config={
|
|
234
|
+
"min_instances": 10,
|
|
235
|
+
"max_instances": 50,
|
|
236
|
+
"target_cpu_utilization": 0.5,
|
|
237
|
+
"target_memory_utilization": 0.5,
|
|
238
|
+
"cooldown_minutes": 5,
|
|
239
|
+
},
|
|
240
|
+
droplet_template={
|
|
241
|
+
"size": "c-2",
|
|
242
|
+
"region": "nyc3",
|
|
243
|
+
"image": "ubuntu-24-04-x64",
|
|
244
|
+
"tags": [my_tag.id],
|
|
245
|
+
"ssh_keys": [my_ssh_key.id],
|
|
246
|
+
"with_droplet_agent": True,
|
|
247
|
+
"ipv6": True,
|
|
248
|
+
"user_data": \"\"\"
|
|
249
|
+
#cloud-config
|
|
250
|
+
runcmd:
|
|
251
|
+
- apt-get update
|
|
252
|
+
- apt-get install -y stress-ng
|
|
253
|
+
\"\"\",
|
|
254
|
+
})
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
## Import
|
|
258
|
+
|
|
259
|
+
Droplet Autoscale pools can be imported using their `id`, e.g.
|
|
260
|
+
|
|
261
|
+
```sh
|
|
262
|
+
$ pulumi import digitalocean:index/dropletAutoscale:DropletAutoscale my-autoscale-pool 38e66834-d741-47ec-88e7-c70cbdcz0445
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
:param str resource_name: The name of the resource.
|
|
266
|
+
:param pulumi.ResourceOptions opts: Options for the resource.
|
|
267
|
+
:param pulumi.Input[Union['DropletAutoscaleConfigArgs', 'DropletAutoscaleConfigArgsDict']] config: The configuration parameters for Droplet Autoscale pool, the supported arguments are
|
|
268
|
+
documented below.
|
|
269
|
+
:param pulumi.Input[Union['DropletAutoscaleDropletTemplateArgs', 'DropletAutoscaleDropletTemplateArgsDict']] droplet_template: The droplet template parameters for Droplet Autoscale pool, the supported arguments
|
|
270
|
+
are documented below.
|
|
271
|
+
:param pulumi.Input[str] name: The name of the Droplet Autoscale pool.
|
|
272
|
+
"""
|
|
273
|
+
...
|
|
274
|
+
@overload
|
|
275
|
+
def __init__(__self__,
|
|
276
|
+
resource_name: str,
|
|
277
|
+
args: DropletAutoscaleArgs,
|
|
278
|
+
opts: Optional[pulumi.ResourceOptions] = None):
|
|
279
|
+
"""
|
|
280
|
+
Provides a DigitalOcean Droplet Autoscale resource. This can be used to create, modify,
|
|
281
|
+
read and delete Droplet Autoscale pools.
|
|
282
|
+
|
|
283
|
+
## Example Usage
|
|
284
|
+
|
|
285
|
+
```python
|
|
286
|
+
import pulumi
|
|
287
|
+
import pulumi_digitalocean as digitalocean
|
|
288
|
+
import pulumi_std as std
|
|
289
|
+
|
|
290
|
+
my_ssh_key = digitalocean.SshKey("my-ssh-key",
|
|
291
|
+
name="terraform-example",
|
|
292
|
+
public_key=std.file(input="/Users/terraform/.ssh/id_rsa.pub").result)
|
|
293
|
+
my_tag = digitalocean.Tag("my-tag", name="terraform-example")
|
|
294
|
+
my_autoscale_pool = digitalocean.DropletAutoscale("my-autoscale-pool",
|
|
295
|
+
name="terraform-example",
|
|
296
|
+
config={
|
|
297
|
+
"min_instances": 10,
|
|
298
|
+
"max_instances": 50,
|
|
299
|
+
"target_cpu_utilization": 0.5,
|
|
300
|
+
"target_memory_utilization": 0.5,
|
|
301
|
+
"cooldown_minutes": 5,
|
|
302
|
+
},
|
|
303
|
+
droplet_template={
|
|
304
|
+
"size": "c-2",
|
|
305
|
+
"region": "nyc3",
|
|
306
|
+
"image": "ubuntu-24-04-x64",
|
|
307
|
+
"tags": [my_tag.id],
|
|
308
|
+
"ssh_keys": [my_ssh_key.id],
|
|
309
|
+
"with_droplet_agent": True,
|
|
310
|
+
"ipv6": True,
|
|
311
|
+
"user_data": \"\"\"
|
|
312
|
+
#cloud-config
|
|
313
|
+
runcmd:
|
|
314
|
+
- apt-get update
|
|
315
|
+
- apt-get install -y stress-ng
|
|
316
|
+
\"\"\",
|
|
317
|
+
})
|
|
318
|
+
```
|
|
319
|
+
|
|
320
|
+
## Import
|
|
321
|
+
|
|
322
|
+
Droplet Autoscale pools can be imported using their `id`, e.g.
|
|
323
|
+
|
|
324
|
+
```sh
|
|
325
|
+
$ pulumi import digitalocean:index/dropletAutoscale:DropletAutoscale my-autoscale-pool 38e66834-d741-47ec-88e7-c70cbdcz0445
|
|
326
|
+
```
|
|
327
|
+
|
|
328
|
+
:param str resource_name: The name of the resource.
|
|
329
|
+
:param DropletAutoscaleArgs args: The arguments to use to populate this resource's properties.
|
|
330
|
+
:param pulumi.ResourceOptions opts: Options for the resource.
|
|
331
|
+
"""
|
|
332
|
+
...
|
|
333
|
+
def __init__(__self__, resource_name: str, *args, **kwargs):
|
|
334
|
+
resource_args, opts = _utilities.get_resource_args_opts(DropletAutoscaleArgs, pulumi.ResourceOptions, *args, **kwargs)
|
|
335
|
+
if resource_args is not None:
|
|
336
|
+
__self__._internal_init(resource_name, opts, **resource_args.__dict__)
|
|
337
|
+
else:
|
|
338
|
+
__self__._internal_init(resource_name, *args, **kwargs)
|
|
339
|
+
|
|
340
|
+
def _internal_init(__self__,
|
|
341
|
+
resource_name: str,
|
|
342
|
+
opts: Optional[pulumi.ResourceOptions] = None,
|
|
343
|
+
config: Optional[pulumi.Input[Union['DropletAutoscaleConfigArgs', 'DropletAutoscaleConfigArgsDict']]] = None,
|
|
344
|
+
droplet_template: Optional[pulumi.Input[Union['DropletAutoscaleDropletTemplateArgs', 'DropletAutoscaleDropletTemplateArgsDict']]] = None,
|
|
345
|
+
name: Optional[pulumi.Input[str]] = None,
|
|
346
|
+
__props__=None):
|
|
347
|
+
opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
|
|
348
|
+
if not isinstance(opts, pulumi.ResourceOptions):
|
|
349
|
+
raise TypeError('Expected resource options to be a ResourceOptions instance')
|
|
350
|
+
if opts.id is None:
|
|
351
|
+
if __props__ is not None:
|
|
352
|
+
raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
|
|
353
|
+
__props__ = DropletAutoscaleArgs.__new__(DropletAutoscaleArgs)
|
|
354
|
+
|
|
355
|
+
if config is None and not opts.urn:
|
|
356
|
+
raise TypeError("Missing required property 'config'")
|
|
357
|
+
__props__.__dict__["config"] = config
|
|
358
|
+
if droplet_template is None and not opts.urn:
|
|
359
|
+
raise TypeError("Missing required property 'droplet_template'")
|
|
360
|
+
__props__.__dict__["droplet_template"] = droplet_template
|
|
361
|
+
__props__.__dict__["name"] = name
|
|
362
|
+
__props__.__dict__["created_at"] = None
|
|
363
|
+
__props__.__dict__["current_utilizations"] = None
|
|
364
|
+
__props__.__dict__["status"] = None
|
|
365
|
+
__props__.__dict__["updated_at"] = None
|
|
366
|
+
super(DropletAutoscale, __self__).__init__(
|
|
367
|
+
'digitalocean:index/dropletAutoscale:DropletAutoscale',
|
|
368
|
+
resource_name,
|
|
369
|
+
__props__,
|
|
370
|
+
opts)
|
|
371
|
+
|
|
372
|
+
@staticmethod
|
|
373
|
+
def get(resource_name: str,
|
|
374
|
+
id: pulumi.Input[str],
|
|
375
|
+
opts: Optional[pulumi.ResourceOptions] = None,
|
|
376
|
+
config: Optional[pulumi.Input[Union['DropletAutoscaleConfigArgs', 'DropletAutoscaleConfigArgsDict']]] = None,
|
|
377
|
+
created_at: Optional[pulumi.Input[str]] = None,
|
|
378
|
+
current_utilizations: Optional[pulumi.Input[Sequence[pulumi.Input[Union['DropletAutoscaleCurrentUtilizationArgs', 'DropletAutoscaleCurrentUtilizationArgsDict']]]]] = None,
|
|
379
|
+
droplet_template: Optional[pulumi.Input[Union['DropletAutoscaleDropletTemplateArgs', 'DropletAutoscaleDropletTemplateArgsDict']]] = None,
|
|
380
|
+
name: Optional[pulumi.Input[str]] = None,
|
|
381
|
+
status: Optional[pulumi.Input[str]] = None,
|
|
382
|
+
updated_at: Optional[pulumi.Input[str]] = None) -> 'DropletAutoscale':
|
|
383
|
+
"""
|
|
384
|
+
Get an existing DropletAutoscale resource's state with the given name, id, and optional extra
|
|
385
|
+
properties used to qualify the lookup.
|
|
386
|
+
|
|
387
|
+
:param str resource_name: The unique name of the resulting resource.
|
|
388
|
+
:param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
|
|
389
|
+
:param pulumi.ResourceOptions opts: Options for the resource.
|
|
390
|
+
:param pulumi.Input[Union['DropletAutoscaleConfigArgs', 'DropletAutoscaleConfigArgsDict']] config: The configuration parameters for Droplet Autoscale pool, the supported arguments are
|
|
391
|
+
documented below.
|
|
392
|
+
:param pulumi.Input[str] created_at: Created at timestamp for the Droplet Autoscale pool.
|
|
393
|
+
:param pulumi.Input[Sequence[pulumi.Input[Union['DropletAutoscaleCurrentUtilizationArgs', 'DropletAutoscaleCurrentUtilizationArgsDict']]]] current_utilizations: The current average resource utilization of the Droplet Autoscale pool, this attribute further
|
|
394
|
+
embeds `memory` and `cpu` attributes to respectively report utilization data.
|
|
395
|
+
:param pulumi.Input[Union['DropletAutoscaleDropletTemplateArgs', 'DropletAutoscaleDropletTemplateArgsDict']] droplet_template: The droplet template parameters for Droplet Autoscale pool, the supported arguments
|
|
396
|
+
are documented below.
|
|
397
|
+
:param pulumi.Input[str] name: The name of the Droplet Autoscale pool.
|
|
398
|
+
:param pulumi.Input[str] status: Droplet Autoscale pool health status; this reflects if the pool is currently healthy and ready to accept
|
|
399
|
+
traffic, or in an error state and needs user intervention.
|
|
400
|
+
:param pulumi.Input[str] updated_at: Updated at timestamp for the Droplet Autoscale pool.
|
|
401
|
+
"""
|
|
402
|
+
opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
|
|
403
|
+
|
|
404
|
+
__props__ = _DropletAutoscaleState.__new__(_DropletAutoscaleState)
|
|
405
|
+
|
|
406
|
+
__props__.__dict__["config"] = config
|
|
407
|
+
__props__.__dict__["created_at"] = created_at
|
|
408
|
+
__props__.__dict__["current_utilizations"] = current_utilizations
|
|
409
|
+
__props__.__dict__["droplet_template"] = droplet_template
|
|
410
|
+
__props__.__dict__["name"] = name
|
|
411
|
+
__props__.__dict__["status"] = status
|
|
412
|
+
__props__.__dict__["updated_at"] = updated_at
|
|
413
|
+
return DropletAutoscale(resource_name, opts=opts, __props__=__props__)
|
|
414
|
+
|
|
415
|
+
@property
|
|
416
|
+
@pulumi.getter
|
|
417
|
+
def config(self) -> pulumi.Output['outputs.DropletAutoscaleConfig']:
|
|
418
|
+
"""
|
|
419
|
+
The configuration parameters for Droplet Autoscale pool, the supported arguments are
|
|
420
|
+
documented below.
|
|
421
|
+
"""
|
|
422
|
+
return pulumi.get(self, "config")
|
|
423
|
+
|
|
424
|
+
@property
|
|
425
|
+
@pulumi.getter(name="createdAt")
|
|
426
|
+
def created_at(self) -> pulumi.Output[str]:
|
|
427
|
+
"""
|
|
428
|
+
Created at timestamp for the Droplet Autoscale pool.
|
|
429
|
+
"""
|
|
430
|
+
return pulumi.get(self, "created_at")
|
|
431
|
+
|
|
432
|
+
@property
|
|
433
|
+
@pulumi.getter(name="currentUtilizations")
|
|
434
|
+
def current_utilizations(self) -> pulumi.Output[Sequence['outputs.DropletAutoscaleCurrentUtilization']]:
|
|
435
|
+
"""
|
|
436
|
+
The current average resource utilization of the Droplet Autoscale pool, this attribute further
|
|
437
|
+
embeds `memory` and `cpu` attributes to respectively report utilization data.
|
|
438
|
+
"""
|
|
439
|
+
return pulumi.get(self, "current_utilizations")
|
|
440
|
+
|
|
441
|
+
@property
|
|
442
|
+
@pulumi.getter(name="dropletTemplate")
|
|
443
|
+
def droplet_template(self) -> pulumi.Output['outputs.DropletAutoscaleDropletTemplate']:
|
|
444
|
+
"""
|
|
445
|
+
The droplet template parameters for Droplet Autoscale pool, the supported arguments
|
|
446
|
+
are documented below.
|
|
447
|
+
"""
|
|
448
|
+
return pulumi.get(self, "droplet_template")
|
|
449
|
+
|
|
450
|
+
@property
|
|
451
|
+
@pulumi.getter
|
|
452
|
+
def name(self) -> pulumi.Output[str]:
|
|
453
|
+
"""
|
|
454
|
+
The name of the Droplet Autoscale pool.
|
|
455
|
+
"""
|
|
456
|
+
return pulumi.get(self, "name")
|
|
457
|
+
|
|
458
|
+
@property
|
|
459
|
+
@pulumi.getter
|
|
460
|
+
def status(self) -> pulumi.Output[str]:
|
|
461
|
+
"""
|
|
462
|
+
Droplet Autoscale pool health status; this reflects if the pool is currently healthy and ready to accept
|
|
463
|
+
traffic, or in an error state and needs user intervention.
|
|
464
|
+
"""
|
|
465
|
+
return pulumi.get(self, "status")
|
|
466
|
+
|
|
467
|
+
@property
|
|
468
|
+
@pulumi.getter(name="updatedAt")
|
|
469
|
+
def updated_at(self) -> pulumi.Output[str]:
|
|
470
|
+
"""
|
|
471
|
+
Updated at timestamp for the Droplet Autoscale pool.
|
|
472
|
+
"""
|
|
473
|
+
return pulumi.get(self, "updated_at")
|
|
474
|
+
|
|
@@ -4,9 +4,14 @@
|
|
|
4
4
|
|
|
5
5
|
import copy
|
|
6
6
|
import warnings
|
|
7
|
+
import sys
|
|
7
8
|
import pulumi
|
|
8
9
|
import pulumi.runtime
|
|
9
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
|
|
10
15
|
from . import _utilities
|
|
11
16
|
|
|
12
17
|
__all__ = ['DropletSnapshotArgs', 'DropletSnapshot']
|
|
@@ -167,22 +172,24 @@ class DropletSnapshot(pulumi.CustomResource):
|
|
|
167
172
|
|
|
168
173
|
## Example Usage
|
|
169
174
|
|
|
170
|
-
<!--Start PulumiCodeChooser -->
|
|
171
175
|
```python
|
|
172
176
|
import pulumi
|
|
173
177
|
import pulumi_digitalocean as digitalocean
|
|
174
178
|
|
|
175
179
|
web = digitalocean.Droplet("web",
|
|
176
|
-
|
|
180
|
+
name="web-01",
|
|
181
|
+
size=digitalocean.DropletSlug.DROPLET_S1_VCPU1_GB,
|
|
177
182
|
image="ubuntu-22-04-x64",
|
|
178
|
-
region=
|
|
179
|
-
web_snapshot = digitalocean.DropletSnapshot("web-snapshot",
|
|
183
|
+
region=digitalocean.Region.NYC3)
|
|
184
|
+
web_snapshot = digitalocean.DropletSnapshot("web-snapshot",
|
|
185
|
+
droplet_id=web.id,
|
|
186
|
+
name="web-snapshot-01")
|
|
180
187
|
from_snapshot = digitalocean.Droplet("from-snapshot",
|
|
181
188
|
image=web_snapshot.id,
|
|
182
|
-
|
|
183
|
-
|
|
189
|
+
name="web-02",
|
|
190
|
+
region=digitalocean.Region.NYC3,
|
|
191
|
+
size=digitalocean.DropletSlug.DROPLET_S2_VCPU4_GB)
|
|
184
192
|
```
|
|
185
|
-
<!--End PulumiCodeChooser -->
|
|
186
193
|
|
|
187
194
|
## Import
|
|
188
195
|
|
|
@@ -208,22 +215,24 @@ class DropletSnapshot(pulumi.CustomResource):
|
|
|
208
215
|
|
|
209
216
|
## Example Usage
|
|
210
217
|
|
|
211
|
-
<!--Start PulumiCodeChooser -->
|
|
212
218
|
```python
|
|
213
219
|
import pulumi
|
|
214
220
|
import pulumi_digitalocean as digitalocean
|
|
215
221
|
|
|
216
222
|
web = digitalocean.Droplet("web",
|
|
217
|
-
|
|
223
|
+
name="web-01",
|
|
224
|
+
size=digitalocean.DropletSlug.DROPLET_S1_VCPU1_GB,
|
|
218
225
|
image="ubuntu-22-04-x64",
|
|
219
|
-
region=
|
|
220
|
-
web_snapshot = digitalocean.DropletSnapshot("web-snapshot",
|
|
226
|
+
region=digitalocean.Region.NYC3)
|
|
227
|
+
web_snapshot = digitalocean.DropletSnapshot("web-snapshot",
|
|
228
|
+
droplet_id=web.id,
|
|
229
|
+
name="web-snapshot-01")
|
|
221
230
|
from_snapshot = digitalocean.Droplet("from-snapshot",
|
|
222
231
|
image=web_snapshot.id,
|
|
223
|
-
|
|
224
|
-
|
|
232
|
+
name="web-02",
|
|
233
|
+
region=digitalocean.Region.NYC3,
|
|
234
|
+
size=digitalocean.DropletSlug.DROPLET_S2_VCPU4_GB)
|
|
225
235
|
```
|
|
226
|
-
<!--End PulumiCodeChooser -->
|
|
227
236
|
|
|
228
237
|
## Import
|
|
229
238
|
|