pulumi-digitalocean 4.27.0a1710332933__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.0a1710332933.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.0a1710332933.dist-info → pulumi_digitalocean-4.39.0a1736833057.dist-info}/WHEEL +1 -1
- pulumi_digitalocean-4.27.0a1710332933.dist-info/RECORD +0 -97
- {pulumi_digitalocean-4.27.0a1710332933.dist-info → pulumi_digitalocean-4.39.0a1736833057.dist-info}/top_level.txt +0 -0
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
import asyncio
|
|
7
|
+
import functools
|
|
7
8
|
import importlib.metadata
|
|
8
9
|
import importlib.util
|
|
9
10
|
import inspect
|
|
@@ -11,14 +12,19 @@ import json
|
|
|
11
12
|
import os
|
|
12
13
|
import sys
|
|
13
14
|
import typing
|
|
15
|
+
import warnings
|
|
16
|
+
import base64
|
|
14
17
|
|
|
15
18
|
import pulumi
|
|
16
19
|
import pulumi.runtime
|
|
17
20
|
from pulumi.runtime.sync_await import _sync_await
|
|
21
|
+
from pulumi.runtime.proto import resource_pb2
|
|
18
22
|
|
|
19
23
|
from semver import VersionInfo as SemverVersion
|
|
20
24
|
from parver import Version as PEP440Version
|
|
21
25
|
|
|
26
|
+
C = typing.TypeVar("C", bound=typing.Callable)
|
|
27
|
+
|
|
22
28
|
|
|
23
29
|
def get_env(*args):
|
|
24
30
|
for v in args:
|
|
@@ -96,10 +102,6 @@ def _get_semver_version():
|
|
|
96
102
|
_version = _get_semver_version()
|
|
97
103
|
_version_str = str(_version)
|
|
98
104
|
|
|
99
|
-
|
|
100
|
-
def get_version():
|
|
101
|
-
return _version_str
|
|
102
|
-
|
|
103
105
|
def get_resource_opts_defaults() -> pulumi.ResourceOptions:
|
|
104
106
|
return pulumi.ResourceOptions(
|
|
105
107
|
version=get_version(),
|
|
@@ -262,7 +264,7 @@ def call_plain(
|
|
|
262
264
|
output = pulumi.runtime.call(tok, props, res, typ)
|
|
263
265
|
|
|
264
266
|
# Ingoring deps silently. They are typically non-empty, r.f() calls include r as a dependency.
|
|
265
|
-
result, known, secret, _ = _sync_await(asyncio.
|
|
267
|
+
result, known, secret, _ = _sync_await(asyncio.create_task(_await_output(output)))
|
|
266
268
|
|
|
267
269
|
problem = None
|
|
268
270
|
if not known:
|
|
@@ -287,5 +289,39 @@ async def _await_output(o: pulumi.Output[typing.Any]) -> typing.Tuple[object, bo
|
|
|
287
289
|
await o._resources,
|
|
288
290
|
)
|
|
289
291
|
|
|
292
|
+
|
|
293
|
+
# This is included to provide an upgrade path for users who are using a version
|
|
294
|
+
# of the Pulumi SDK (<3.121.0) that does not include the `deprecated` decorator.
|
|
295
|
+
def deprecated(message: str) -> typing.Callable[[C], C]:
|
|
296
|
+
"""
|
|
297
|
+
Decorator to indicate a function is deprecated.
|
|
298
|
+
|
|
299
|
+
As well as inserting appropriate statements to indicate that the function is
|
|
300
|
+
deprecated, this decorator also tags the function with a special attribute
|
|
301
|
+
so that Pulumi code can detect that it is deprecated and react appropriately
|
|
302
|
+
in certain situations.
|
|
303
|
+
|
|
304
|
+
message is the deprecation message that should be printed if the function is called.
|
|
305
|
+
"""
|
|
306
|
+
|
|
307
|
+
def decorator(fn: C) -> C:
|
|
308
|
+
if not callable(fn):
|
|
309
|
+
raise TypeError("Expected fn to be callable")
|
|
310
|
+
|
|
311
|
+
@functools.wraps(fn)
|
|
312
|
+
def deprecated_fn(*args, **kwargs):
|
|
313
|
+
warnings.warn(message)
|
|
314
|
+
pulumi.warn(f"{fn.__name__} is deprecated: {message}")
|
|
315
|
+
|
|
316
|
+
return fn(*args, **kwargs)
|
|
317
|
+
|
|
318
|
+
deprecated_fn.__dict__["_pulumi_deprecated_callable"] = fn
|
|
319
|
+
return typing.cast(C, deprecated_fn)
|
|
320
|
+
|
|
321
|
+
return decorator
|
|
322
|
+
|
|
290
323
|
def get_plugin_download_url():
|
|
291
324
|
return None
|
|
325
|
+
|
|
326
|
+
def get_version():
|
|
327
|
+
return _version_str
|
pulumi_digitalocean/app.py
CHANGED
|
@@ -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
|
from . import outputs
|
|
12
17
|
from ._inputs import *
|
|
@@ -16,10 +21,12 @@ __all__ = ['AppArgs', 'App']
|
|
|
16
21
|
@pulumi.input_type
|
|
17
22
|
class AppArgs:
|
|
18
23
|
def __init__(__self__, *,
|
|
24
|
+
dedicated_ips: Optional[pulumi.Input[Sequence[pulumi.Input['AppDedicatedIpArgs']]]] = None,
|
|
19
25
|
project_id: Optional[pulumi.Input[str]] = None,
|
|
20
26
|
spec: Optional[pulumi.Input['AppSpecArgs']] = None):
|
|
21
27
|
"""
|
|
22
28
|
The set of arguments for constructing a App resource.
|
|
29
|
+
:param pulumi.Input[Sequence[pulumi.Input['AppDedicatedIpArgs']]] dedicated_ips: The dedicated egress IP addresses associated with the app.
|
|
23
30
|
:param pulumi.Input[str] project_id: The ID of the project that the app is assigned to.
|
|
24
31
|
|
|
25
32
|
A spec can contain multiple components.
|
|
@@ -27,11 +34,25 @@ class AppArgs:
|
|
|
27
34
|
A `service` can contain:
|
|
28
35
|
:param pulumi.Input['AppSpecArgs'] spec: A DigitalOcean App spec describing the app.
|
|
29
36
|
"""
|
|
37
|
+
if dedicated_ips is not None:
|
|
38
|
+
pulumi.set(__self__, "dedicated_ips", dedicated_ips)
|
|
30
39
|
if project_id is not None:
|
|
31
40
|
pulumi.set(__self__, "project_id", project_id)
|
|
32
41
|
if spec is not None:
|
|
33
42
|
pulumi.set(__self__, "spec", spec)
|
|
34
43
|
|
|
44
|
+
@property
|
|
45
|
+
@pulumi.getter(name="dedicatedIps")
|
|
46
|
+
def dedicated_ips(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['AppDedicatedIpArgs']]]]:
|
|
47
|
+
"""
|
|
48
|
+
The dedicated egress IP addresses associated with the app.
|
|
49
|
+
"""
|
|
50
|
+
return pulumi.get(self, "dedicated_ips")
|
|
51
|
+
|
|
52
|
+
@dedicated_ips.setter
|
|
53
|
+
def dedicated_ips(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['AppDedicatedIpArgs']]]]):
|
|
54
|
+
pulumi.set(self, "dedicated_ips", value)
|
|
55
|
+
|
|
35
56
|
@property
|
|
36
57
|
@pulumi.getter(name="projectId")
|
|
37
58
|
def project_id(self) -> Optional[pulumi.Input[str]]:
|
|
@@ -67,7 +88,9 @@ class _AppState:
|
|
|
67
88
|
active_deployment_id: Optional[pulumi.Input[str]] = None,
|
|
68
89
|
app_urn: Optional[pulumi.Input[str]] = None,
|
|
69
90
|
created_at: Optional[pulumi.Input[str]] = None,
|
|
91
|
+
dedicated_ips: Optional[pulumi.Input[Sequence[pulumi.Input['AppDedicatedIpArgs']]]] = None,
|
|
70
92
|
default_ingress: Optional[pulumi.Input[str]] = None,
|
|
93
|
+
live_domain: Optional[pulumi.Input[str]] = None,
|
|
71
94
|
live_url: Optional[pulumi.Input[str]] = None,
|
|
72
95
|
project_id: Optional[pulumi.Input[str]] = None,
|
|
73
96
|
spec: Optional[pulumi.Input['AppSpecArgs']] = None,
|
|
@@ -77,7 +100,9 @@ class _AppState:
|
|
|
77
100
|
:param pulumi.Input[str] active_deployment_id: The ID the app's currently active deployment.
|
|
78
101
|
:param pulumi.Input[str] app_urn: The uniform resource identifier for the app.
|
|
79
102
|
:param pulumi.Input[str] created_at: The date and time of when the app was created.
|
|
103
|
+
:param pulumi.Input[Sequence[pulumi.Input['AppDedicatedIpArgs']]] dedicated_ips: The dedicated egress IP addresses associated with the app.
|
|
80
104
|
:param pulumi.Input[str] default_ingress: The default URL to access the app.
|
|
105
|
+
:param pulumi.Input[str] live_domain: The live domain of the app.
|
|
81
106
|
:param pulumi.Input[str] live_url: The live URL of the app.
|
|
82
107
|
:param pulumi.Input[str] project_id: The ID of the project that the app is assigned to.
|
|
83
108
|
|
|
@@ -93,8 +118,12 @@ class _AppState:
|
|
|
93
118
|
pulumi.set(__self__, "app_urn", app_urn)
|
|
94
119
|
if created_at is not None:
|
|
95
120
|
pulumi.set(__self__, "created_at", created_at)
|
|
121
|
+
if dedicated_ips is not None:
|
|
122
|
+
pulumi.set(__self__, "dedicated_ips", dedicated_ips)
|
|
96
123
|
if default_ingress is not None:
|
|
97
124
|
pulumi.set(__self__, "default_ingress", default_ingress)
|
|
125
|
+
if live_domain is not None:
|
|
126
|
+
pulumi.set(__self__, "live_domain", live_domain)
|
|
98
127
|
if live_url is not None:
|
|
99
128
|
pulumi.set(__self__, "live_url", live_url)
|
|
100
129
|
if project_id is not None:
|
|
@@ -140,6 +169,18 @@ class _AppState:
|
|
|
140
169
|
def created_at(self, value: Optional[pulumi.Input[str]]):
|
|
141
170
|
pulumi.set(self, "created_at", value)
|
|
142
171
|
|
|
172
|
+
@property
|
|
173
|
+
@pulumi.getter(name="dedicatedIps")
|
|
174
|
+
def dedicated_ips(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['AppDedicatedIpArgs']]]]:
|
|
175
|
+
"""
|
|
176
|
+
The dedicated egress IP addresses associated with the app.
|
|
177
|
+
"""
|
|
178
|
+
return pulumi.get(self, "dedicated_ips")
|
|
179
|
+
|
|
180
|
+
@dedicated_ips.setter
|
|
181
|
+
def dedicated_ips(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['AppDedicatedIpArgs']]]]):
|
|
182
|
+
pulumi.set(self, "dedicated_ips", value)
|
|
183
|
+
|
|
143
184
|
@property
|
|
144
185
|
@pulumi.getter(name="defaultIngress")
|
|
145
186
|
def default_ingress(self) -> Optional[pulumi.Input[str]]:
|
|
@@ -152,6 +193,18 @@ class _AppState:
|
|
|
152
193
|
def default_ingress(self, value: Optional[pulumi.Input[str]]):
|
|
153
194
|
pulumi.set(self, "default_ingress", value)
|
|
154
195
|
|
|
196
|
+
@property
|
|
197
|
+
@pulumi.getter(name="liveDomain")
|
|
198
|
+
def live_domain(self) -> Optional[pulumi.Input[str]]:
|
|
199
|
+
"""
|
|
200
|
+
The live domain of the app.
|
|
201
|
+
"""
|
|
202
|
+
return pulumi.get(self, "live_domain")
|
|
203
|
+
|
|
204
|
+
@live_domain.setter
|
|
205
|
+
def live_domain(self, value: Optional[pulumi.Input[str]]):
|
|
206
|
+
pulumi.set(self, "live_domain", value)
|
|
207
|
+
|
|
155
208
|
@property
|
|
156
209
|
@pulumi.getter(name="liveUrl")
|
|
157
210
|
def live_url(self) -> Optional[pulumi.Input[str]]:
|
|
@@ -210,8 +263,9 @@ class App(pulumi.CustomResource):
|
|
|
210
263
|
def __init__(__self__,
|
|
211
264
|
resource_name: str,
|
|
212
265
|
opts: Optional[pulumi.ResourceOptions] = None,
|
|
266
|
+
dedicated_ips: Optional[pulumi.Input[Sequence[pulumi.Input[Union['AppDedicatedIpArgs', 'AppDedicatedIpArgsDict']]]]] = None,
|
|
213
267
|
project_id: Optional[pulumi.Input[str]] = None,
|
|
214
|
-
spec: Optional[pulumi.Input[
|
|
268
|
+
spec: Optional[pulumi.Input[Union['AppSpecArgs', 'AppSpecArgsDict']]] = None,
|
|
215
269
|
__props__=None):
|
|
216
270
|
"""
|
|
217
271
|
Provides a DigitalOcean App resource.
|
|
@@ -222,50 +276,76 @@ class App(pulumi.CustomResource):
|
|
|
222
276
|
|
|
223
277
|
### Basic Example
|
|
224
278
|
|
|
225
|
-
<!--Start PulumiCodeChooser -->
|
|
226
279
|
```python
|
|
227
280
|
import pulumi
|
|
228
281
|
import pulumi_digitalocean as digitalocean
|
|
229
282
|
|
|
230
|
-
golang_sample = digitalocean.App("golang-sample", spec=
|
|
231
|
-
name
|
|
232
|
-
region
|
|
233
|
-
services
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
))
|
|
283
|
+
golang_sample = digitalocean.App("golang-sample", spec={
|
|
284
|
+
"name": "golang-sample",
|
|
285
|
+
"region": "ams",
|
|
286
|
+
"services": [{
|
|
287
|
+
"name": "go-service",
|
|
288
|
+
"instance_count": 1,
|
|
289
|
+
"instance_size_slug": "apps-s-1vcpu-1gb",
|
|
290
|
+
"git": {
|
|
291
|
+
"repo_clone_url": "https://github.com/digitalocean/sample-golang.git",
|
|
292
|
+
"branch": "main",
|
|
293
|
+
},
|
|
294
|
+
}],
|
|
295
|
+
})
|
|
244
296
|
```
|
|
245
|
-
<!--End PulumiCodeChooser -->
|
|
246
297
|
|
|
247
298
|
### Static Site Example
|
|
248
299
|
|
|
249
|
-
<!--Start PulumiCodeChooser -->
|
|
250
300
|
```python
|
|
251
301
|
import pulumi
|
|
252
302
|
import pulumi_digitalocean as digitalocean
|
|
253
303
|
|
|
254
|
-
static_site_example = digitalocean.App("static-site-example", spec=
|
|
255
|
-
name
|
|
256
|
-
region
|
|
257
|
-
static_sites
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
)
|
|
304
|
+
static_site_example = digitalocean.App("static-site-example", spec={
|
|
305
|
+
"name": "static-site-example",
|
|
306
|
+
"region": "ams",
|
|
307
|
+
"static_sites": [{
|
|
308
|
+
"name": "sample-jekyll",
|
|
309
|
+
"build_command": "bundle exec jekyll build -d ./public",
|
|
310
|
+
"output_dir": "/public",
|
|
311
|
+
"git": {
|
|
312
|
+
"repo_clone_url": "https://github.com/digitalocean/sample-jekyll.git",
|
|
313
|
+
"branch": "main",
|
|
314
|
+
},
|
|
315
|
+
}],
|
|
316
|
+
})
|
|
317
|
+
```
|
|
318
|
+
|
|
319
|
+
### Log Destination Example with Opensearch
|
|
320
|
+
|
|
321
|
+
```python
|
|
322
|
+
import pulumi
|
|
323
|
+
import pulumi_digitalocean as digitalocean
|
|
324
|
+
|
|
325
|
+
golang_sample = digitalocean.App("golang-sample", spec={
|
|
326
|
+
"name": "golang-sample",
|
|
327
|
+
"region": "ams",
|
|
328
|
+
"services": [{
|
|
329
|
+
"name": "go-service",
|
|
330
|
+
"instance_count": 1,
|
|
331
|
+
"instance_size_slug": "apps-s-1vcpu-1gb",
|
|
332
|
+
"git": {
|
|
333
|
+
"repo_clone_url": "https://github.com/digitalocean/sample-golang.git",
|
|
334
|
+
"branch": "main",
|
|
335
|
+
},
|
|
336
|
+
"log_destinations": [{
|
|
337
|
+
"name": "MyLogs",
|
|
338
|
+
"open_search": {
|
|
339
|
+
"endpoint": "https://something:1234",
|
|
340
|
+
"basic_auth": {
|
|
341
|
+
"user": "user",
|
|
342
|
+
"password": "hi",
|
|
343
|
+
},
|
|
344
|
+
},
|
|
345
|
+
}],
|
|
346
|
+
}],
|
|
347
|
+
})
|
|
267
348
|
```
|
|
268
|
-
<!--End PulumiCodeChooser -->
|
|
269
349
|
|
|
270
350
|
## Import
|
|
271
351
|
|
|
@@ -277,12 +357,13 @@ class App(pulumi.CustomResource):
|
|
|
277
357
|
|
|
278
358
|
:param str resource_name: The name of the resource.
|
|
279
359
|
:param pulumi.ResourceOptions opts: Options for the resource.
|
|
360
|
+
:param pulumi.Input[Sequence[pulumi.Input[Union['AppDedicatedIpArgs', 'AppDedicatedIpArgsDict']]]] dedicated_ips: The dedicated egress IP addresses associated with the app.
|
|
280
361
|
:param pulumi.Input[str] project_id: The ID of the project that the app is assigned to.
|
|
281
362
|
|
|
282
363
|
A spec can contain multiple components.
|
|
283
364
|
|
|
284
365
|
A `service` can contain:
|
|
285
|
-
:param pulumi.Input[
|
|
366
|
+
:param pulumi.Input[Union['AppSpecArgs', 'AppSpecArgsDict']] spec: A DigitalOcean App spec describing the app.
|
|
286
367
|
"""
|
|
287
368
|
...
|
|
288
369
|
@overload
|
|
@@ -299,50 +380,76 @@ class App(pulumi.CustomResource):
|
|
|
299
380
|
|
|
300
381
|
### Basic Example
|
|
301
382
|
|
|
302
|
-
<!--Start PulumiCodeChooser -->
|
|
303
383
|
```python
|
|
304
384
|
import pulumi
|
|
305
385
|
import pulumi_digitalocean as digitalocean
|
|
306
386
|
|
|
307
|
-
golang_sample = digitalocean.App("golang-sample", spec=
|
|
308
|
-
name
|
|
309
|
-
region
|
|
310
|
-
services
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
))
|
|
387
|
+
golang_sample = digitalocean.App("golang-sample", spec={
|
|
388
|
+
"name": "golang-sample",
|
|
389
|
+
"region": "ams",
|
|
390
|
+
"services": [{
|
|
391
|
+
"name": "go-service",
|
|
392
|
+
"instance_count": 1,
|
|
393
|
+
"instance_size_slug": "apps-s-1vcpu-1gb",
|
|
394
|
+
"git": {
|
|
395
|
+
"repo_clone_url": "https://github.com/digitalocean/sample-golang.git",
|
|
396
|
+
"branch": "main",
|
|
397
|
+
},
|
|
398
|
+
}],
|
|
399
|
+
})
|
|
321
400
|
```
|
|
322
|
-
<!--End PulumiCodeChooser -->
|
|
323
401
|
|
|
324
402
|
### Static Site Example
|
|
325
403
|
|
|
326
|
-
<!--Start PulumiCodeChooser -->
|
|
327
404
|
```python
|
|
328
405
|
import pulumi
|
|
329
406
|
import pulumi_digitalocean as digitalocean
|
|
330
407
|
|
|
331
|
-
static_site_example = digitalocean.App("static-site-example", spec=
|
|
332
|
-
name
|
|
333
|
-
region
|
|
334
|
-
static_sites
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
)
|
|
408
|
+
static_site_example = digitalocean.App("static-site-example", spec={
|
|
409
|
+
"name": "static-site-example",
|
|
410
|
+
"region": "ams",
|
|
411
|
+
"static_sites": [{
|
|
412
|
+
"name": "sample-jekyll",
|
|
413
|
+
"build_command": "bundle exec jekyll build -d ./public",
|
|
414
|
+
"output_dir": "/public",
|
|
415
|
+
"git": {
|
|
416
|
+
"repo_clone_url": "https://github.com/digitalocean/sample-jekyll.git",
|
|
417
|
+
"branch": "main",
|
|
418
|
+
},
|
|
419
|
+
}],
|
|
420
|
+
})
|
|
421
|
+
```
|
|
422
|
+
|
|
423
|
+
### Log Destination Example with Opensearch
|
|
424
|
+
|
|
425
|
+
```python
|
|
426
|
+
import pulumi
|
|
427
|
+
import pulumi_digitalocean as digitalocean
|
|
428
|
+
|
|
429
|
+
golang_sample = digitalocean.App("golang-sample", spec={
|
|
430
|
+
"name": "golang-sample",
|
|
431
|
+
"region": "ams",
|
|
432
|
+
"services": [{
|
|
433
|
+
"name": "go-service",
|
|
434
|
+
"instance_count": 1,
|
|
435
|
+
"instance_size_slug": "apps-s-1vcpu-1gb",
|
|
436
|
+
"git": {
|
|
437
|
+
"repo_clone_url": "https://github.com/digitalocean/sample-golang.git",
|
|
438
|
+
"branch": "main",
|
|
439
|
+
},
|
|
440
|
+
"log_destinations": [{
|
|
441
|
+
"name": "MyLogs",
|
|
442
|
+
"open_search": {
|
|
443
|
+
"endpoint": "https://something:1234",
|
|
444
|
+
"basic_auth": {
|
|
445
|
+
"user": "user",
|
|
446
|
+
"password": "hi",
|
|
447
|
+
},
|
|
448
|
+
},
|
|
449
|
+
}],
|
|
450
|
+
}],
|
|
451
|
+
})
|
|
344
452
|
```
|
|
345
|
-
<!--End PulumiCodeChooser -->
|
|
346
453
|
|
|
347
454
|
## Import
|
|
348
455
|
|
|
@@ -367,8 +474,9 @@ class App(pulumi.CustomResource):
|
|
|
367
474
|
def _internal_init(__self__,
|
|
368
475
|
resource_name: str,
|
|
369
476
|
opts: Optional[pulumi.ResourceOptions] = None,
|
|
477
|
+
dedicated_ips: Optional[pulumi.Input[Sequence[pulumi.Input[Union['AppDedicatedIpArgs', 'AppDedicatedIpArgsDict']]]]] = None,
|
|
370
478
|
project_id: Optional[pulumi.Input[str]] = None,
|
|
371
|
-
spec: Optional[pulumi.Input[
|
|
479
|
+
spec: Optional[pulumi.Input[Union['AppSpecArgs', 'AppSpecArgsDict']]] = None,
|
|
372
480
|
__props__=None):
|
|
373
481
|
opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
|
|
374
482
|
if not isinstance(opts, pulumi.ResourceOptions):
|
|
@@ -378,12 +486,14 @@ class App(pulumi.CustomResource):
|
|
|
378
486
|
raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
|
|
379
487
|
__props__ = AppArgs.__new__(AppArgs)
|
|
380
488
|
|
|
489
|
+
__props__.__dict__["dedicated_ips"] = dedicated_ips
|
|
381
490
|
__props__.__dict__["project_id"] = project_id
|
|
382
491
|
__props__.__dict__["spec"] = spec
|
|
383
492
|
__props__.__dict__["active_deployment_id"] = None
|
|
384
493
|
__props__.__dict__["app_urn"] = None
|
|
385
494
|
__props__.__dict__["created_at"] = None
|
|
386
495
|
__props__.__dict__["default_ingress"] = None
|
|
496
|
+
__props__.__dict__["live_domain"] = None
|
|
387
497
|
__props__.__dict__["live_url"] = None
|
|
388
498
|
__props__.__dict__["updated_at"] = None
|
|
389
499
|
super(App, __self__).__init__(
|
|
@@ -399,10 +509,12 @@ class App(pulumi.CustomResource):
|
|
|
399
509
|
active_deployment_id: Optional[pulumi.Input[str]] = None,
|
|
400
510
|
app_urn: Optional[pulumi.Input[str]] = None,
|
|
401
511
|
created_at: Optional[pulumi.Input[str]] = None,
|
|
512
|
+
dedicated_ips: Optional[pulumi.Input[Sequence[pulumi.Input[Union['AppDedicatedIpArgs', 'AppDedicatedIpArgsDict']]]]] = None,
|
|
402
513
|
default_ingress: Optional[pulumi.Input[str]] = None,
|
|
514
|
+
live_domain: Optional[pulumi.Input[str]] = None,
|
|
403
515
|
live_url: Optional[pulumi.Input[str]] = None,
|
|
404
516
|
project_id: Optional[pulumi.Input[str]] = None,
|
|
405
|
-
spec: Optional[pulumi.Input[
|
|
517
|
+
spec: Optional[pulumi.Input[Union['AppSpecArgs', 'AppSpecArgsDict']]] = None,
|
|
406
518
|
updated_at: Optional[pulumi.Input[str]] = None) -> 'App':
|
|
407
519
|
"""
|
|
408
520
|
Get an existing App resource's state with the given name, id, and optional extra
|
|
@@ -414,14 +526,16 @@ class App(pulumi.CustomResource):
|
|
|
414
526
|
:param pulumi.Input[str] active_deployment_id: The ID the app's currently active deployment.
|
|
415
527
|
:param pulumi.Input[str] app_urn: The uniform resource identifier for the app.
|
|
416
528
|
:param pulumi.Input[str] created_at: The date and time of when the app was created.
|
|
529
|
+
:param pulumi.Input[Sequence[pulumi.Input[Union['AppDedicatedIpArgs', 'AppDedicatedIpArgsDict']]]] dedicated_ips: The dedicated egress IP addresses associated with the app.
|
|
417
530
|
:param pulumi.Input[str] default_ingress: The default URL to access the app.
|
|
531
|
+
:param pulumi.Input[str] live_domain: The live domain of the app.
|
|
418
532
|
:param pulumi.Input[str] live_url: The live URL of the app.
|
|
419
533
|
:param pulumi.Input[str] project_id: The ID of the project that the app is assigned to.
|
|
420
534
|
|
|
421
535
|
A spec can contain multiple components.
|
|
422
536
|
|
|
423
537
|
A `service` can contain:
|
|
424
|
-
:param pulumi.Input[
|
|
538
|
+
:param pulumi.Input[Union['AppSpecArgs', 'AppSpecArgsDict']] spec: A DigitalOcean App spec describing the app.
|
|
425
539
|
:param pulumi.Input[str] updated_at: The date and time of when the app was last updated.
|
|
426
540
|
"""
|
|
427
541
|
opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
|
|
@@ -431,7 +545,9 @@ class App(pulumi.CustomResource):
|
|
|
431
545
|
__props__.__dict__["active_deployment_id"] = active_deployment_id
|
|
432
546
|
__props__.__dict__["app_urn"] = app_urn
|
|
433
547
|
__props__.__dict__["created_at"] = created_at
|
|
548
|
+
__props__.__dict__["dedicated_ips"] = dedicated_ips
|
|
434
549
|
__props__.__dict__["default_ingress"] = default_ingress
|
|
550
|
+
__props__.__dict__["live_domain"] = live_domain
|
|
435
551
|
__props__.__dict__["live_url"] = live_url
|
|
436
552
|
__props__.__dict__["project_id"] = project_id
|
|
437
553
|
__props__.__dict__["spec"] = spec
|
|
@@ -462,6 +578,14 @@ class App(pulumi.CustomResource):
|
|
|
462
578
|
"""
|
|
463
579
|
return pulumi.get(self, "created_at")
|
|
464
580
|
|
|
581
|
+
@property
|
|
582
|
+
@pulumi.getter(name="dedicatedIps")
|
|
583
|
+
def dedicated_ips(self) -> pulumi.Output[Sequence['outputs.AppDedicatedIp']]:
|
|
584
|
+
"""
|
|
585
|
+
The dedicated egress IP addresses associated with the app.
|
|
586
|
+
"""
|
|
587
|
+
return pulumi.get(self, "dedicated_ips")
|
|
588
|
+
|
|
465
589
|
@property
|
|
466
590
|
@pulumi.getter(name="defaultIngress")
|
|
467
591
|
def default_ingress(self) -> pulumi.Output[str]:
|
|
@@ -470,6 +594,14 @@ class App(pulumi.CustomResource):
|
|
|
470
594
|
"""
|
|
471
595
|
return pulumi.get(self, "default_ingress")
|
|
472
596
|
|
|
597
|
+
@property
|
|
598
|
+
@pulumi.getter(name="liveDomain")
|
|
599
|
+
def live_domain(self) -> pulumi.Output[str]:
|
|
600
|
+
"""
|
|
601
|
+
The live domain of the app.
|
|
602
|
+
"""
|
|
603
|
+
return pulumi.get(self, "live_domain")
|
|
604
|
+
|
|
473
605
|
@property
|
|
474
606
|
@pulumi.getter(name="liveUrl")
|
|
475
607
|
def live_url(self) -> pulumi.Output[str]:
|