Bridge what Dokploy v0.30 added, and let the docs through
build / build (push) Failing after 11m22s
release / plugin (push) Failing after 31m35s
release / sdks (push) Has been skipped

Six new resources from terraform-provider-dokploy v0.2.0 -- Network,
DnsProvider, VaultProvider, Schedule, VolumeBackup and Libsql -- plus the new
properties on Domain (`enabled`), Compose (`serviceNetworks`, `createEnvFile`,
`icon`) and Application. Verified with `pulumi up` against a live v0.30.2
instance: create, preview-clean, and destroy.

The upstream provider also now refuses a volume Mount with no `volumeName`,
which Dokploy would otherwise turn into an anonymous Docker volume recreated
on every deploy. That surfaces here at preview time, before anything exists.

Two things made that fix nearly invisible to Pulumi users, so this commit
fixes the second one: the bridge resolves the upstream `docs/` through the Go
module cache, where a locally `replace`d dependency never lands, so tfgen was
emitting every resource with no description at all. UpstreamRepoPath now
points at the checkout and all 445 inputs carry documentation -- with names
rendered per language, so Python readers see `volume_name` where TypeScript
readers see `volumeName`.
This commit is contained in:
max-voitcov
2026-08-26 00:46:32 +03:00
parent ad3e908c98
commit 73386ba0ff
137 changed files with 19660 additions and 5183 deletions
+54
View File
@@ -10,6 +10,7 @@ from .application import *
from .certificate import *
from .compose import *
from .destination import *
from .dns_provider import *
from .domain import *
from .environment import *
from .get_application import *
@@ -17,10 +18,12 @@ from .get_environment import *
from .get_project import *
from .get_projects import *
from .get_servers import *
from .libsql import *
from .maria_db import *
from .mongo import *
from .mount import *
from .my_sql import *
from .network import *
from .port import *
from .postgres import *
from .project import *
@@ -28,8 +31,11 @@ from .provider import *
from .redirect import *
from .redis import *
from .registry import *
from .schedule import *
from .security import *
from .ssh_key import *
from .vault_provider import *
from .volume_backup import *
from . import outputs
# Make subpackages available:
@@ -74,6 +80,14 @@ _utilities.register(
"dokploy:index/destination:Destination": "Destination"
}
},
{
"pkg": "dokploy",
"mod": "index/dnsProvider",
"fqn": "pulumi_dokploy",
"classes": {
"dokploy:index/dnsProvider:DnsProvider": "DnsProvider"
}
},
{
"pkg": "dokploy",
"mod": "index/domain",
@@ -90,6 +104,14 @@ _utilities.register(
"dokploy:index/environment:Environment": "Environment"
}
},
{
"pkg": "dokploy",
"mod": "index/libsql",
"fqn": "pulumi_dokploy",
"classes": {
"dokploy:index/libsql:Libsql": "Libsql"
}
},
{
"pkg": "dokploy",
"mod": "index/mariaDb",
@@ -122,6 +144,14 @@ _utilities.register(
"dokploy:index/mySql:MySql": "MySql"
}
},
{
"pkg": "dokploy",
"mod": "index/network",
"fqn": "pulumi_dokploy",
"classes": {
"dokploy:index/network:Network": "Network"
}
},
{
"pkg": "dokploy",
"mod": "index/port",
@@ -170,6 +200,14 @@ _utilities.register(
"dokploy:index/registry:Registry": "Registry"
}
},
{
"pkg": "dokploy",
"mod": "index/schedule",
"fqn": "pulumi_dokploy",
"classes": {
"dokploy:index/schedule:Schedule": "Schedule"
}
},
{
"pkg": "dokploy",
"mod": "index/security",
@@ -185,6 +223,22 @@ _utilities.register(
"classes": {
"dokploy:index/sshKey:SshKey": "SshKey"
}
},
{
"pkg": "dokploy",
"mod": "index/vaultProvider",
"fqn": "pulumi_dokploy",
"classes": {
"dokploy:index/vaultProvider:VaultProvider": "VaultProvider"
}
},
{
"pkg": "dokploy",
"mod": "index/volumeBackup",
"fqn": "pulumi_dokploy",
"classes": {
"dokploy:index/volumeBackup:VolumeBackup": "VolumeBackup"
}
}
]
""",
-2
View File
@@ -13,12 +13,10 @@ import os
import sys
import typing
import warnings
import base64
import pulumi
import pulumi.runtime
from pulumi.runtime.sync_await import _sync_await
from pulumi.runtime.proto import resource_pb2
from semver import VersionInfo as SemverVersion
from parver import Version as PEP440Version
+957 -853
View File
File diff suppressed because it is too large Load Diff
+51 -45
View File
@@ -21,9 +21,9 @@ class CertificateArgs:
def __init__(__self__, *,
certificate_data: pulumi.Input[_builtins.str],
private_key: pulumi.Input[_builtins.str],
auto_renew: Optional[pulumi.Input[_builtins.bool]] = None,
name: Optional[pulumi.Input[_builtins.str]] = None,
server_id: Optional[pulumi.Input[_builtins.str]] = None):
auto_renew: pulumi.Input[Optional[_builtins.bool]] = None,
name: pulumi.Input[Optional[_builtins.str]] = None,
server_id: pulumi.Input[Optional[_builtins.str]] = None):
"""
The set of arguments for constructing a Certificate resource.
@@ -68,50 +68,50 @@ class CertificateArgs:
@_builtins.property
@pulumi.getter(name="autoRenew")
def auto_renew(self) -> Optional[pulumi.Input[_builtins.bool]]:
def auto_renew(self) -> pulumi.Input[Optional[_builtins.bool]]:
"""
Whether Dokploy should renew this certificate automatically.
"""
return pulumi.get(self, "auto_renew")
@auto_renew.setter
def auto_renew(self, value: Optional[pulumi.Input[_builtins.bool]]):
def auto_renew(self, value: pulumi.Input[Optional[_builtins.bool]]):
pulumi.set(self, "auto_renew", value)
@_builtins.property
@pulumi.getter
def name(self) -> Optional[pulumi.Input[_builtins.str]]:
def name(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Display name of the certificate.
"""
return pulumi.get(self, "name")
@name.setter
def name(self, value: Optional[pulumi.Input[_builtins.str]]):
def name(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "name", value)
@_builtins.property
@pulumi.getter(name="serverId")
def server_id(self) -> Optional[pulumi.Input[_builtins.str]]:
def server_id(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Server this certificate is installed on.
"""
return pulumi.get(self, "server_id")
@server_id.setter
def server_id(self, value: Optional[pulumi.Input[_builtins.str]]):
def server_id(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "server_id", value)
@pulumi.input_type
class _CertificateState:
def __init__(__self__, *,
auto_renew: Optional[pulumi.Input[_builtins.bool]] = None,
certificate_data: Optional[pulumi.Input[_builtins.str]] = None,
certificate_path: Optional[pulumi.Input[_builtins.str]] = None,
name: Optional[pulumi.Input[_builtins.str]] = None,
private_key: Optional[pulumi.Input[_builtins.str]] = None,
server_id: Optional[pulumi.Input[_builtins.str]] = None):
auto_renew: pulumi.Input[Optional[_builtins.bool]] = None,
certificate_data: pulumi.Input[Optional[_builtins.str]] = None,
certificate_path: pulumi.Input[Optional[_builtins.str]] = None,
name: pulumi.Input[Optional[_builtins.str]] = None,
private_key: pulumi.Input[Optional[_builtins.str]] = None,
server_id: pulumi.Input[Optional[_builtins.str]] = None):
"""
Input properties used for looking up and filtering Certificate resources.
@@ -137,74 +137,74 @@ class _CertificateState:
@_builtins.property
@pulumi.getter(name="autoRenew")
def auto_renew(self) -> Optional[pulumi.Input[_builtins.bool]]:
def auto_renew(self) -> pulumi.Input[Optional[_builtins.bool]]:
"""
Whether Dokploy should renew this certificate automatically.
"""
return pulumi.get(self, "auto_renew")
@auto_renew.setter
def auto_renew(self, value: Optional[pulumi.Input[_builtins.bool]]):
def auto_renew(self, value: pulumi.Input[Optional[_builtins.bool]]):
pulumi.set(self, "auto_renew", value)
@_builtins.property
@pulumi.getter(name="certificateData")
def certificate_data(self) -> Optional[pulumi.Input[_builtins.str]]:
def certificate_data(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
PEM-encoded certificate chain.
"""
return pulumi.get(self, "certificate_data")
@certificate_data.setter
def certificate_data(self, value: Optional[pulumi.Input[_builtins.str]]):
def certificate_data(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "certificate_data", value)
@_builtins.property
@pulumi.getter(name="certificatePath")
def certificate_path(self) -> Optional[pulumi.Input[_builtins.str]]:
def certificate_path(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Path where Dokploy writes the certificate on disk.
"""
return pulumi.get(self, "certificate_path")
@certificate_path.setter
def certificate_path(self, value: Optional[pulumi.Input[_builtins.str]]):
def certificate_path(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "certificate_path", value)
@_builtins.property
@pulumi.getter
def name(self) -> Optional[pulumi.Input[_builtins.str]]:
def name(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Display name of the certificate.
"""
return pulumi.get(self, "name")
@name.setter
def name(self, value: Optional[pulumi.Input[_builtins.str]]):
def name(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "name", value)
@_builtins.property
@pulumi.getter(name="privateKey")
def private_key(self) -> Optional[pulumi.Input[_builtins.str]]:
def private_key(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
PEM-encoded private key.
"""
return pulumi.get(self, "private_key")
@private_key.setter
def private_key(self, value: Optional[pulumi.Input[_builtins.str]]):
def private_key(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "private_key", value)
@_builtins.property
@pulumi.getter(name="serverId")
def server_id(self) -> Optional[pulumi.Input[_builtins.str]]:
def server_id(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Server this certificate is installed on.
"""
return pulumi.get(self, "server_id")
@server_id.setter
def server_id(self, value: Optional[pulumi.Input[_builtins.str]]):
def server_id(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "server_id", value)
@@ -214,14 +214,17 @@ class Certificate(pulumi.CustomResource):
def __init__(__self__,
resource_name: str,
opts: Optional[pulumi.ResourceOptions] = None,
auto_renew: Optional[pulumi.Input[_builtins.bool]] = None,
certificate_data: Optional[pulumi.Input[_builtins.str]] = None,
name: Optional[pulumi.Input[_builtins.str]] = None,
private_key: Optional[pulumi.Input[_builtins.str]] = None,
server_id: Optional[pulumi.Input[_builtins.str]] = None,
auto_renew: pulumi.Input[Optional[_builtins.bool]] = None,
certificate_data: pulumi.Input[Optional[_builtins.str]] = None,
name: pulumi.Input[Optional[_builtins.str]] = None,
private_key: pulumi.Input[Optional[_builtins.str]] = None,
server_id: pulumi.Input[Optional[_builtins.str]] = None,
__props__=None):
"""
Create a Certificate resource with the given unique name, props, and options.
A TLS certificate uploaded to Dokploy, for domains that use `certificate_type = "custom"`.
> The private key is stored in Terraform state. Use a state backend with encryption at rest.
:param str resource_name: The name of the resource.
:param pulumi.ResourceOptions opts: Options for the resource.
@@ -238,7 +241,10 @@ class Certificate(pulumi.CustomResource):
args: CertificateArgs,
opts: Optional[pulumi.ResourceOptions] = None):
"""
Create a Certificate resource with the given unique name, props, and options.
A TLS certificate uploaded to Dokploy, for domains that use `certificate_type = "custom"`.
> The private key is stored in Terraform state. Use a state backend with encryption at rest.
:param str resource_name: The name of the resource.
:param CertificateArgs args: The arguments to use to populate this resource's properties.
@@ -255,11 +261,11 @@ class Certificate(pulumi.CustomResource):
def _internal_init(__self__,
resource_name: str,
opts: Optional[pulumi.ResourceOptions] = None,
auto_renew: Optional[pulumi.Input[_builtins.bool]] = None,
certificate_data: Optional[pulumi.Input[_builtins.str]] = None,
name: Optional[pulumi.Input[_builtins.str]] = None,
private_key: Optional[pulumi.Input[_builtins.str]] = None,
server_id: Optional[pulumi.Input[_builtins.str]] = None,
auto_renew: pulumi.Input[Optional[_builtins.bool]] = None,
certificate_data: pulumi.Input[Optional[_builtins.str]] = None,
name: pulumi.Input[Optional[_builtins.str]] = None,
private_key: pulumi.Input[Optional[_builtins.str]] = None,
server_id: pulumi.Input[Optional[_builtins.str]] = None,
__props__=None):
opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
if not isinstance(opts, pulumi.ResourceOptions):
@@ -291,12 +297,12 @@ class Certificate(pulumi.CustomResource):
def get(resource_name: str,
id: pulumi.Input[str],
opts: Optional[pulumi.ResourceOptions] = None,
auto_renew: Optional[pulumi.Input[_builtins.bool]] = None,
certificate_data: Optional[pulumi.Input[_builtins.str]] = None,
certificate_path: Optional[pulumi.Input[_builtins.str]] = None,
name: Optional[pulumi.Input[_builtins.str]] = None,
private_key: Optional[pulumi.Input[_builtins.str]] = None,
server_id: Optional[pulumi.Input[_builtins.str]] = None) -> 'Certificate':
auto_renew: pulumi.Input[Optional[_builtins.bool]] = None,
certificate_data: pulumi.Input[Optional[_builtins.str]] = None,
certificate_path: pulumi.Input[Optional[_builtins.str]] = None,
name: pulumi.Input[Optional[_builtins.str]] = None,
private_key: pulumi.Input[Optional[_builtins.str]] = None,
server_id: pulumi.Input[Optional[_builtins.str]] = None) -> 'Certificate':
"""
Get an existing Certificate resource's state with the given name, id, and optional extra
properties used to qualify the lookup.
+536 -385
View File
File diff suppressed because it is too large Load Diff
+78 -72
View File
@@ -24,10 +24,10 @@ class DestinationArgs:
endpoint: pulumi.Input[_builtins.str],
region: pulumi.Input[_builtins.str],
secret_access_key: pulumi.Input[_builtins.str],
additional_flags: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
name: Optional[pulumi.Input[_builtins.str]] = None,
provider_name: Optional[pulumi.Input[_builtins.str]] = None,
server_id: Optional[pulumi.Input[_builtins.str]] = None):
additional_flags: pulumi.Input[Optional[Sequence[pulumi.Input[_builtins.str]]]] = None,
name: pulumi.Input[Optional[_builtins.str]] = None,
provider_name: pulumi.Input[Optional[_builtins.str]] = None,
server_id: pulumi.Input[Optional[_builtins.str]] = None):
"""
The set of arguments for constructing a Destination resource.
@@ -117,66 +117,66 @@ class DestinationArgs:
@_builtins.property
@pulumi.getter(name="additionalFlags")
def additional_flags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
def additional_flags(self) -> pulumi.Input[Optional[Sequence[pulumi.Input[_builtins.str]]]]:
"""
Extra flags passed to the underlying `rclone` invocation.
"""
return pulumi.get(self, "additional_flags")
@additional_flags.setter
def additional_flags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
def additional_flags(self, value: pulumi.Input[Optional[Sequence[pulumi.Input[_builtins.str]]]]):
pulumi.set(self, "additional_flags", value)
@_builtins.property
@pulumi.getter
def name(self) -> Optional[pulumi.Input[_builtins.str]]:
def name(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Display name of the destination.
"""
return pulumi.get(self, "name")
@name.setter
def name(self, value: Optional[pulumi.Input[_builtins.str]]):
def name(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "name", value)
@_builtins.property
@pulumi.getter(name="providerName")
def provider_name(self) -> Optional[pulumi.Input[_builtins.str]]:
def provider_name(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Provider label, for example `s3` or `cloudflare`. Named `provider_name` because `provider` is reserved by Terraform.
"""
return pulumi.get(self, "provider_name")
@provider_name.setter
def provider_name(self, value: Optional[pulumi.Input[_builtins.str]]):
def provider_name(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "provider_name", value)
@_builtins.property
@pulumi.getter(name="serverId")
def server_id(self) -> Optional[pulumi.Input[_builtins.str]]:
def server_id(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Server this destination is scoped to.
"""
return pulumi.get(self, "server_id")
@server_id.setter
def server_id(self, value: Optional[pulumi.Input[_builtins.str]]):
def server_id(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "server_id", value)
@pulumi.input_type
class _DestinationState:
def __init__(__self__, *,
access_key: Optional[pulumi.Input[_builtins.str]] = None,
additional_flags: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
bucket: Optional[pulumi.Input[_builtins.str]] = None,
created_at: Optional[pulumi.Input[_builtins.str]] = None,
endpoint: Optional[pulumi.Input[_builtins.str]] = None,
name: Optional[pulumi.Input[_builtins.str]] = None,
provider_name: Optional[pulumi.Input[_builtins.str]] = None,
region: Optional[pulumi.Input[_builtins.str]] = None,
secret_access_key: Optional[pulumi.Input[_builtins.str]] = None,
server_id: Optional[pulumi.Input[_builtins.str]] = None):
access_key: pulumi.Input[Optional[_builtins.str]] = None,
additional_flags: pulumi.Input[Optional[Sequence[pulumi.Input[_builtins.str]]]] = None,
bucket: pulumi.Input[Optional[_builtins.str]] = None,
created_at: pulumi.Input[Optional[_builtins.str]] = None,
endpoint: pulumi.Input[Optional[_builtins.str]] = None,
name: pulumi.Input[Optional[_builtins.str]] = None,
provider_name: pulumi.Input[Optional[_builtins.str]] = None,
region: pulumi.Input[Optional[_builtins.str]] = None,
secret_access_key: pulumi.Input[Optional[_builtins.str]] = None,
server_id: pulumi.Input[Optional[_builtins.str]] = None):
"""
Input properties used for looking up and filtering Destination resources.
@@ -214,122 +214,122 @@ class _DestinationState:
@_builtins.property
@pulumi.getter(name="accessKey")
def access_key(self) -> Optional[pulumi.Input[_builtins.str]]:
def access_key(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
S3 access key ID.
"""
return pulumi.get(self, "access_key")
@access_key.setter
def access_key(self, value: Optional[pulumi.Input[_builtins.str]]):
def access_key(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "access_key", value)
@_builtins.property
@pulumi.getter(name="additionalFlags")
def additional_flags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
def additional_flags(self) -> pulumi.Input[Optional[Sequence[pulumi.Input[_builtins.str]]]]:
"""
Extra flags passed to the underlying `rclone` invocation.
"""
return pulumi.get(self, "additional_flags")
@additional_flags.setter
def additional_flags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
def additional_flags(self, value: pulumi.Input[Optional[Sequence[pulumi.Input[_builtins.str]]]]):
pulumi.set(self, "additional_flags", value)
@_builtins.property
@pulumi.getter
def bucket(self) -> Optional[pulumi.Input[_builtins.str]]:
def bucket(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Bucket name.
"""
return pulumi.get(self, "bucket")
@bucket.setter
def bucket(self, value: Optional[pulumi.Input[_builtins.str]]):
def bucket(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "bucket", value)
@_builtins.property
@pulumi.getter(name="createdAt")
def created_at(self) -> Optional[pulumi.Input[_builtins.str]]:
def created_at(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Timestamp of when the destination was created.
"""
return pulumi.get(self, "created_at")
@created_at.setter
def created_at(self, value: Optional[pulumi.Input[_builtins.str]]):
def created_at(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "created_at", value)
@_builtins.property
@pulumi.getter
def endpoint(self) -> Optional[pulumi.Input[_builtins.str]]:
def endpoint(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
S3 endpoint URL.
"""
return pulumi.get(self, "endpoint")
@endpoint.setter
def endpoint(self, value: Optional[pulumi.Input[_builtins.str]]):
def endpoint(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "endpoint", value)
@_builtins.property
@pulumi.getter
def name(self) -> Optional[pulumi.Input[_builtins.str]]:
def name(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Display name of the destination.
"""
return pulumi.get(self, "name")
@name.setter
def name(self, value: Optional[pulumi.Input[_builtins.str]]):
def name(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "name", value)
@_builtins.property
@pulumi.getter(name="providerName")
def provider_name(self) -> Optional[pulumi.Input[_builtins.str]]:
def provider_name(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Provider label, for example `s3` or `cloudflare`. Named `provider_name` because `provider` is reserved by Terraform.
"""
return pulumi.get(self, "provider_name")
@provider_name.setter
def provider_name(self, value: Optional[pulumi.Input[_builtins.str]]):
def provider_name(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "provider_name", value)
@_builtins.property
@pulumi.getter
def region(self) -> Optional[pulumi.Input[_builtins.str]]:
def region(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Bucket region, for example `us-east-1`.
"""
return pulumi.get(self, "region")
@region.setter
def region(self, value: Optional[pulumi.Input[_builtins.str]]):
def region(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "region", value)
@_builtins.property
@pulumi.getter(name="secretAccessKey")
def secret_access_key(self) -> Optional[pulumi.Input[_builtins.str]]:
def secret_access_key(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
S3 secret access key.
"""
return pulumi.get(self, "secret_access_key")
@secret_access_key.setter
def secret_access_key(self, value: Optional[pulumi.Input[_builtins.str]]):
def secret_access_key(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "secret_access_key", value)
@_builtins.property
@pulumi.getter(name="serverId")
def server_id(self) -> Optional[pulumi.Input[_builtins.str]]:
def server_id(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Server this destination is scoped to.
"""
return pulumi.get(self, "server_id")
@server_id.setter
def server_id(self, value: Optional[pulumi.Input[_builtins.str]]):
def server_id(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "server_id", value)
@@ -339,18 +339,21 @@ class Destination(pulumi.CustomResource):
def __init__(__self__,
resource_name: str,
opts: Optional[pulumi.ResourceOptions] = None,
access_key: Optional[pulumi.Input[_builtins.str]] = None,
additional_flags: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
bucket: Optional[pulumi.Input[_builtins.str]] = None,
endpoint: Optional[pulumi.Input[_builtins.str]] = None,
name: Optional[pulumi.Input[_builtins.str]] = None,
provider_name: Optional[pulumi.Input[_builtins.str]] = None,
region: Optional[pulumi.Input[_builtins.str]] = None,
secret_access_key: Optional[pulumi.Input[_builtins.str]] = None,
server_id: Optional[pulumi.Input[_builtins.str]] = None,
access_key: pulumi.Input[Optional[_builtins.str]] = None,
additional_flags: pulumi.Input[Optional[Sequence[pulumi.Input[_builtins.str]]]] = None,
bucket: pulumi.Input[Optional[_builtins.str]] = None,
endpoint: pulumi.Input[Optional[_builtins.str]] = None,
name: pulumi.Input[Optional[_builtins.str]] = None,
provider_name: pulumi.Input[Optional[_builtins.str]] = None,
region: pulumi.Input[Optional[_builtins.str]] = None,
secret_access_key: pulumi.Input[Optional[_builtins.str]] = None,
server_id: pulumi.Input[Optional[_builtins.str]] = None,
__props__=None):
"""
Create a Destination resource with the given unique name, props, and options.
An S3-compatible bucket that Dokploy writes database and volume backups to.
> The secret access key is stored in Terraform state. Use a state backend with encryption at rest.
:param str resource_name: The name of the resource.
:param pulumi.ResourceOptions opts: Options for the resource.
@@ -371,7 +374,10 @@ class Destination(pulumi.CustomResource):
args: DestinationArgs,
opts: Optional[pulumi.ResourceOptions] = None):
"""
Create a Destination resource with the given unique name, props, and options.
An S3-compatible bucket that Dokploy writes database and volume backups to.
> The secret access key is stored in Terraform state. Use a state backend with encryption at rest.
:param str resource_name: The name of the resource.
:param DestinationArgs args: The arguments to use to populate this resource's properties.
@@ -388,15 +394,15 @@ class Destination(pulumi.CustomResource):
def _internal_init(__self__,
resource_name: str,
opts: Optional[pulumi.ResourceOptions] = None,
access_key: Optional[pulumi.Input[_builtins.str]] = None,
additional_flags: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
bucket: Optional[pulumi.Input[_builtins.str]] = None,
endpoint: Optional[pulumi.Input[_builtins.str]] = None,
name: Optional[pulumi.Input[_builtins.str]] = None,
provider_name: Optional[pulumi.Input[_builtins.str]] = None,
region: Optional[pulumi.Input[_builtins.str]] = None,
secret_access_key: Optional[pulumi.Input[_builtins.str]] = None,
server_id: Optional[pulumi.Input[_builtins.str]] = None,
access_key: pulumi.Input[Optional[_builtins.str]] = None,
additional_flags: pulumi.Input[Optional[Sequence[pulumi.Input[_builtins.str]]]] = None,
bucket: pulumi.Input[Optional[_builtins.str]] = None,
endpoint: pulumi.Input[Optional[_builtins.str]] = None,
name: pulumi.Input[Optional[_builtins.str]] = None,
provider_name: pulumi.Input[Optional[_builtins.str]] = None,
region: pulumi.Input[Optional[_builtins.str]] = None,
secret_access_key: pulumi.Input[Optional[_builtins.str]] = None,
server_id: pulumi.Input[Optional[_builtins.str]] = None,
__props__=None):
opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
if not isinstance(opts, pulumi.ResourceOptions):
@@ -438,16 +444,16 @@ class Destination(pulumi.CustomResource):
def get(resource_name: str,
id: pulumi.Input[str],
opts: Optional[pulumi.ResourceOptions] = None,
access_key: Optional[pulumi.Input[_builtins.str]] = None,
additional_flags: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
bucket: Optional[pulumi.Input[_builtins.str]] = None,
created_at: Optional[pulumi.Input[_builtins.str]] = None,
endpoint: Optional[pulumi.Input[_builtins.str]] = None,
name: Optional[pulumi.Input[_builtins.str]] = None,
provider_name: Optional[pulumi.Input[_builtins.str]] = None,
region: Optional[pulumi.Input[_builtins.str]] = None,
secret_access_key: Optional[pulumi.Input[_builtins.str]] = None,
server_id: Optional[pulumi.Input[_builtins.str]] = None) -> 'Destination':
access_key: pulumi.Input[Optional[_builtins.str]] = None,
additional_flags: pulumi.Input[Optional[Sequence[pulumi.Input[_builtins.str]]]] = None,
bucket: pulumi.Input[Optional[_builtins.str]] = None,
created_at: pulumi.Input[Optional[_builtins.str]] = None,
endpoint: pulumi.Input[Optional[_builtins.str]] = None,
name: pulumi.Input[Optional[_builtins.str]] = None,
provider_name: pulumi.Input[Optional[_builtins.str]] = None,
region: pulumi.Input[Optional[_builtins.str]] = None,
secret_access_key: pulumi.Input[Optional[_builtins.str]] = None,
server_id: pulumi.Input[Optional[_builtins.str]] = None) -> 'Destination':
"""
Get an existing Destination resource's state with the given name, id, and optional extra
properties used to qualify the lookup.
+293
View File
@@ -0,0 +1,293 @@
# coding=utf-8
# *** WARNING: this file was generated by pulumi-language-python. ***
# *** Do not edit by hand unless you're certain you know what you are doing! ***
import builtins as _builtins
import warnings
import sys
import pulumi
import pulumi.runtime
from typing import Any, Mapping, Optional, Sequence, Union, overload
if sys.version_info >= (3, 11):
from typing import NotRequired, TypedDict, TypeAlias
else:
from typing_extensions import NotRequired, TypedDict, TypeAlias
from . import _utilities
__all__ = ['DnsProviderArgs', 'DnsProvider']
@pulumi.input_type
class DnsProviderArgs:
def __init__(__self__, *,
config: pulumi.Input[_builtins.str],
name: pulumi.Input[Optional[_builtins.str]] = None):
"""
The set of arguments for constructing a DnsProvider resource.
:param pulumi.Input[_builtins.str] config: Provider credentials as a JSON object, including the `providerType` discriminator.
:param pulumi.Input[_builtins.str] name: Name of the connection. Must be unique within the organization and may contain only letters, digits, `-` and `_`.
"""
pulumi.set(__self__, "config", config)
if name is not None:
pulumi.set(__self__, "name", name)
@_builtins.property
@pulumi.getter
def config(self) -> pulumi.Input[_builtins.str]:
"""
Provider credentials as a JSON object, including the `providerType` discriminator.
"""
return pulumi.get(self, "config")
@config.setter
def config(self, value: pulumi.Input[_builtins.str]):
pulumi.set(self, "config", value)
@_builtins.property
@pulumi.getter
def name(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Name of the connection. Must be unique within the organization and may contain only letters, digits, `-` and `_`.
"""
return pulumi.get(self, "name")
@name.setter
def name(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "name", value)
@pulumi.input_type
class _DnsProviderState:
def __init__(__self__, *,
config: pulumi.Input[Optional[_builtins.str]] = None,
created_at: pulumi.Input[Optional[_builtins.str]] = None,
name: pulumi.Input[Optional[_builtins.str]] = None,
organization_id: pulumi.Input[Optional[_builtins.str]] = None,
provider_type: pulumi.Input[Optional[_builtins.str]] = None):
"""
Input properties used for looking up and filtering DnsProvider resources.
:param pulumi.Input[_builtins.str] config: Provider credentials as a JSON object, including the `providerType` discriminator.
:param pulumi.Input[_builtins.str] created_at: RFC 3339 timestamp of when the connection was created.
:param pulumi.Input[_builtins.str] name: Name of the connection. Must be unique within the organization and may contain only letters, digits, `-` and `_`.
:param pulumi.Input[_builtins.str] organization_id: Organization that owns the connection.
:param pulumi.Input[_builtins.str] provider_type: Provider kind derived from `config`: `cloudflare` or `route53`.
"""
if config is not None:
pulumi.set(__self__, "config", config)
if created_at is not None:
pulumi.set(__self__, "created_at", created_at)
if name is not None:
pulumi.set(__self__, "name", name)
if organization_id is not None:
pulumi.set(__self__, "organization_id", organization_id)
if provider_type is not None:
pulumi.set(__self__, "provider_type", provider_type)
@_builtins.property
@pulumi.getter
def config(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Provider credentials as a JSON object, including the `providerType` discriminator.
"""
return pulumi.get(self, "config")
@config.setter
def config(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "config", value)
@_builtins.property
@pulumi.getter(name="createdAt")
def created_at(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
RFC 3339 timestamp of when the connection was created.
"""
return pulumi.get(self, "created_at")
@created_at.setter
def created_at(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "created_at", value)
@_builtins.property
@pulumi.getter
def name(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Name of the connection. Must be unique within the organization and may contain only letters, digits, `-` and `_`.
"""
return pulumi.get(self, "name")
@name.setter
def name(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "name", value)
@_builtins.property
@pulumi.getter(name="organizationId")
def organization_id(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Organization that owns the connection.
"""
return pulumi.get(self, "organization_id")
@organization_id.setter
def organization_id(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "organization_id", value)
@_builtins.property
@pulumi.getter(name="providerType")
def provider_type(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Provider kind derived from `config`: `cloudflare` or `route53`.
"""
return pulumi.get(self, "provider_type")
@provider_type.setter
def provider_type(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "provider_type", value)
@pulumi.type_token("dokploy:index/dnsProvider:DnsProvider")
class DnsProvider(pulumi.CustomResource):
@overload
def __init__(__self__,
resource_name: str,
opts: Optional[pulumi.ResourceOptions] = None,
config: pulumi.Input[Optional[_builtins.str]] = None,
name: pulumi.Input[Optional[_builtins.str]] = None,
__props__=None):
"""
A DNS provider connection Dokploy uses to create records for domains automatically.
`config` is a JSON object whose shape depends on `providerType`:
:param str resource_name: The name of the resource.
:param pulumi.ResourceOptions opts: Options for the resource.
:param pulumi.Input[_builtins.str] config: Provider credentials as a JSON object, including the `providerType` discriminator.
:param pulumi.Input[_builtins.str] name: Name of the connection. Must be unique within the organization and may contain only letters, digits, `-` and `_`.
"""
...
@overload
def __init__(__self__,
resource_name: str,
args: DnsProviderArgs,
opts: Optional[pulumi.ResourceOptions] = None):
"""
A DNS provider connection Dokploy uses to create records for domains automatically.
`config` is a JSON object whose shape depends on `providerType`:
:param str resource_name: The name of the resource.
:param DnsProviderArgs args: The arguments to use to populate this resource's properties.
:param pulumi.ResourceOptions opts: Options for the resource.
"""
...
def __init__(__self__, resource_name: str, *args, **kwargs):
resource_args, opts = _utilities.get_resource_args_opts(DnsProviderArgs, pulumi.ResourceOptions, *args, **kwargs)
if resource_args is not None:
__self__._internal_init(resource_name, opts, **resource_args.__dict__)
else:
__self__._internal_init(resource_name, *args, **kwargs)
def _internal_init(__self__,
resource_name: str,
opts: Optional[pulumi.ResourceOptions] = None,
config: pulumi.Input[Optional[_builtins.str]] = None,
name: pulumi.Input[Optional[_builtins.str]] = None,
__props__=None):
opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
if not isinstance(opts, pulumi.ResourceOptions):
raise TypeError('Expected resource options to be a ResourceOptions instance')
if opts.id is None:
if __props__ is not None:
raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
__props__ = DnsProviderArgs.__new__(DnsProviderArgs)
if config is None and not opts.urn:
raise TypeError("Missing required property 'config'")
__props__.__dict__["config"] = None if config is None else pulumi.Output.secret(config)
__props__.__dict__["name"] = name
__props__.__dict__["created_at"] = None
__props__.__dict__["organization_id"] = None
__props__.__dict__["provider_type"] = None
secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["config"])
opts = pulumi.ResourceOptions.merge(opts, secret_opts)
super(DnsProvider, __self__).__init__(
'dokploy:index/dnsProvider:DnsProvider',
resource_name,
__props__,
opts)
@staticmethod
def get(resource_name: str,
id: pulumi.Input[str],
opts: Optional[pulumi.ResourceOptions] = None,
config: pulumi.Input[Optional[_builtins.str]] = None,
created_at: pulumi.Input[Optional[_builtins.str]] = None,
name: pulumi.Input[Optional[_builtins.str]] = None,
organization_id: pulumi.Input[Optional[_builtins.str]] = None,
provider_type: pulumi.Input[Optional[_builtins.str]] = None) -> 'DnsProvider':
"""
Get an existing DnsProvider resource's state with the given name, id, and optional extra
properties used to qualify the lookup.
:param str resource_name: The unique name of the resulting resource.
:param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
:param pulumi.ResourceOptions opts: Options for the resource.
:param pulumi.Input[_builtins.str] config: Provider credentials as a JSON object, including the `providerType` discriminator.
:param pulumi.Input[_builtins.str] created_at: RFC 3339 timestamp of when the connection was created.
:param pulumi.Input[_builtins.str] name: Name of the connection. Must be unique within the organization and may contain only letters, digits, `-` and `_`.
:param pulumi.Input[_builtins.str] organization_id: Organization that owns the connection.
:param pulumi.Input[_builtins.str] provider_type: Provider kind derived from `config`: `cloudflare` or `route53`.
"""
opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
__props__ = _DnsProviderState.__new__(_DnsProviderState)
__props__.__dict__["config"] = config
__props__.__dict__["created_at"] = created_at
__props__.__dict__["name"] = name
__props__.__dict__["organization_id"] = organization_id
__props__.__dict__["provider_type"] = provider_type
return DnsProvider(resource_name, opts=opts, __props__=__props__)
@_builtins.property
@pulumi.getter
def config(self) -> pulumi.Output[_builtins.str]:
"""
Provider credentials as a JSON object, including the `providerType` discriminator.
"""
return pulumi.get(self, "config")
@_builtins.property
@pulumi.getter(name="createdAt")
def created_at(self) -> pulumi.Output[_builtins.str]:
"""
RFC 3339 timestamp of when the connection was created.
"""
return pulumi.get(self, "created_at")
@_builtins.property
@pulumi.getter
def name(self) -> pulumi.Output[_builtins.str]:
"""
Name of the connection. Must be unique within the organization and may contain only letters, digits, `-` and `_`.
"""
return pulumi.get(self, "name")
@_builtins.property
@pulumi.getter(name="organizationId")
def organization_id(self) -> pulumi.Output[_builtins.str]:
"""
Organization that owns the connection.
"""
return pulumi.get(self, "organization_id")
@_builtins.property
@pulumi.getter(name="providerType")
def provider_type(self) -> pulumi.Output[_builtins.str]:
"""
Provider kind derived from `config`: `cloudflare` or `route53`.
"""
return pulumi.get(self, "provider_type")
+200 -147
View File
@@ -20,21 +20,22 @@ __all__ = ['DomainArgs', 'Domain']
class DomainArgs:
def __init__(__self__, *,
host: pulumi.Input[_builtins.str],
application_id: Optional[pulumi.Input[_builtins.str]] = None,
certificate_type: Optional[pulumi.Input[_builtins.str]] = None,
compose_id: Optional[pulumi.Input[_builtins.str]] = None,
custom_cert_resolver: Optional[pulumi.Input[_builtins.str]] = None,
custom_entrypoint: Optional[pulumi.Input[_builtins.str]] = None,
domain_type: Optional[pulumi.Input[_builtins.str]] = None,
forward_auth_enabled: Optional[pulumi.Input[_builtins.bool]] = None,
https: Optional[pulumi.Input[_builtins.bool]] = None,
internal_path: Optional[pulumi.Input[_builtins.str]] = None,
middlewares: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
path: Optional[pulumi.Input[_builtins.str]] = None,
port: Optional[pulumi.Input[_builtins.int]] = None,
preview_deployment_id: Optional[pulumi.Input[_builtins.str]] = None,
service_name: Optional[pulumi.Input[_builtins.str]] = None,
strip_path: Optional[pulumi.Input[_builtins.bool]] = None):
application_id: pulumi.Input[Optional[_builtins.str]] = None,
certificate_type: pulumi.Input[Optional[_builtins.str]] = None,
compose_id: pulumi.Input[Optional[_builtins.str]] = None,
custom_cert_resolver: pulumi.Input[Optional[_builtins.str]] = None,
custom_entrypoint: pulumi.Input[Optional[_builtins.str]] = None,
domain_type: pulumi.Input[Optional[_builtins.str]] = None,
enabled: pulumi.Input[Optional[_builtins.bool]] = None,
forward_auth_enabled: pulumi.Input[Optional[_builtins.bool]] = None,
https: pulumi.Input[Optional[_builtins.bool]] = None,
internal_path: pulumi.Input[Optional[_builtins.str]] = None,
middlewares: pulumi.Input[Optional[Sequence[pulumi.Input[_builtins.str]]]] = None,
path: pulumi.Input[Optional[_builtins.str]] = None,
port: pulumi.Input[Optional[_builtins.int]] = None,
preview_deployment_id: pulumi.Input[Optional[_builtins.str]] = None,
service_name: pulumi.Input[Optional[_builtins.str]] = None,
strip_path: pulumi.Input[Optional[_builtins.bool]] = None):
"""
The set of arguments for constructing a Domain resource.
@@ -45,6 +46,7 @@ class DomainArgs:
:param pulumi.Input[_builtins.str] custom_cert_resolver: Traefik certificate resolver name, when `certificate_type` is `custom`.
:param pulumi.Input[_builtins.str] custom_entrypoint: Traefik entrypoint to bind, when not using the defaults.
:param pulumi.Input[_builtins.str] domain_type: What kind of target this domain points at. Valid values: `compose`, `application`, `preview`.
:param pulumi.Input[_builtins.bool] enabled: Whether the domain is served. Setting this to `false` removes the route from Traefik but keeps the certificate, path and middleware configuration intact, so the domain can be brought back without reconfiguring it.
:param pulumi.Input[_builtins.bool] forward_auth_enabled: Protect this domain with Dokploy's forward auth.
:param pulumi.Input[_builtins.bool] https: Serve the domain over HTTPS and redirect HTTP traffic to it.
:param pulumi.Input[_builtins.str] internal_path: Path the request is rewritten to before it reaches the container, defaults to `/`.
@@ -68,6 +70,8 @@ class DomainArgs:
pulumi.set(__self__, "custom_entrypoint", custom_entrypoint)
if domain_type is not None:
pulumi.set(__self__, "domain_type", domain_type)
if enabled is not None:
pulumi.set(__self__, "enabled", enabled)
if forward_auth_enabled is not None:
pulumi.set(__self__, "forward_auth_enabled", forward_auth_enabled)
if https is not None:
@@ -101,205 +105,218 @@ class DomainArgs:
@_builtins.property
@pulumi.getter(name="applicationId")
def application_id(self) -> Optional[pulumi.Input[_builtins.str]]:
def application_id(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Application this domain routes to.
"""
return pulumi.get(self, "application_id")
@application_id.setter
def application_id(self, value: Optional[pulumi.Input[_builtins.str]]):
def application_id(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "application_id", value)
@_builtins.property
@pulumi.getter(name="certificateType")
def certificate_type(self) -> Optional[pulumi.Input[_builtins.str]]:
def certificate_type(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
How TLS certificates are obtained. Use `letsencrypt` for automatic certificates. Valid values: `letsencrypt`, `none`, `custom`.
"""
return pulumi.get(self, "certificate_type")
@certificate_type.setter
def certificate_type(self, value: Optional[pulumi.Input[_builtins.str]]):
def certificate_type(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "certificate_type", value)
@_builtins.property
@pulumi.getter(name="composeId")
def compose_id(self) -> Optional[pulumi.Input[_builtins.str]]:
def compose_id(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Compose stack this domain routes to.
"""
return pulumi.get(self, "compose_id")
@compose_id.setter
def compose_id(self, value: Optional[pulumi.Input[_builtins.str]]):
def compose_id(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "compose_id", value)
@_builtins.property
@pulumi.getter(name="customCertResolver")
def custom_cert_resolver(self) -> Optional[pulumi.Input[_builtins.str]]:
def custom_cert_resolver(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Traefik certificate resolver name, when `certificate_type` is `custom`.
"""
return pulumi.get(self, "custom_cert_resolver")
@custom_cert_resolver.setter
def custom_cert_resolver(self, value: Optional[pulumi.Input[_builtins.str]]):
def custom_cert_resolver(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "custom_cert_resolver", value)
@_builtins.property
@pulumi.getter(name="customEntrypoint")
def custom_entrypoint(self) -> Optional[pulumi.Input[_builtins.str]]:
def custom_entrypoint(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Traefik entrypoint to bind, when not using the defaults.
"""
return pulumi.get(self, "custom_entrypoint")
@custom_entrypoint.setter
def custom_entrypoint(self, value: Optional[pulumi.Input[_builtins.str]]):
def custom_entrypoint(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "custom_entrypoint", value)
@_builtins.property
@pulumi.getter(name="domainType")
def domain_type(self) -> Optional[pulumi.Input[_builtins.str]]:
def domain_type(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
What kind of target this domain points at. Valid values: `compose`, `application`, `preview`.
"""
return pulumi.get(self, "domain_type")
@domain_type.setter
def domain_type(self, value: Optional[pulumi.Input[_builtins.str]]):
def domain_type(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "domain_type", value)
@_builtins.property
@pulumi.getter
def enabled(self) -> pulumi.Input[Optional[_builtins.bool]]:
"""
Whether the domain is served. Setting this to `false` removes the route from Traefik but keeps the certificate, path and middleware configuration intact, so the domain can be brought back without reconfiguring it.
"""
return pulumi.get(self, "enabled")
@enabled.setter
def enabled(self, value: pulumi.Input[Optional[_builtins.bool]]):
pulumi.set(self, "enabled", value)
@_builtins.property
@pulumi.getter(name="forwardAuthEnabled")
def forward_auth_enabled(self) -> Optional[pulumi.Input[_builtins.bool]]:
def forward_auth_enabled(self) -> pulumi.Input[Optional[_builtins.bool]]:
"""
Protect this domain with Dokploy's forward auth.
"""
return pulumi.get(self, "forward_auth_enabled")
@forward_auth_enabled.setter
def forward_auth_enabled(self, value: Optional[pulumi.Input[_builtins.bool]]):
def forward_auth_enabled(self, value: pulumi.Input[Optional[_builtins.bool]]):
pulumi.set(self, "forward_auth_enabled", value)
@_builtins.property
@pulumi.getter
def https(self) -> Optional[pulumi.Input[_builtins.bool]]:
def https(self) -> pulumi.Input[Optional[_builtins.bool]]:
"""
Serve the domain over HTTPS and redirect HTTP traffic to it.
"""
return pulumi.get(self, "https")
@https.setter
def https(self, value: Optional[pulumi.Input[_builtins.bool]]):
def https(self, value: pulumi.Input[Optional[_builtins.bool]]):
pulumi.set(self, "https", value)
@_builtins.property
@pulumi.getter(name="internalPath")
def internal_path(self) -> Optional[pulumi.Input[_builtins.str]]:
def internal_path(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Path the request is rewritten to before it reaches the container, defaults to `/`.
"""
return pulumi.get(self, "internal_path")
@internal_path.setter
def internal_path(self, value: Optional[pulumi.Input[_builtins.str]]):
def internal_path(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "internal_path", value)
@_builtins.property
@pulumi.getter
def middlewares(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
def middlewares(self) -> pulumi.Input[Optional[Sequence[pulumi.Input[_builtins.str]]]]:
"""
Names of Traefik middlewares to apply.
"""
return pulumi.get(self, "middlewares")
@middlewares.setter
def middlewares(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
def middlewares(self, value: pulumi.Input[Optional[Sequence[pulumi.Input[_builtins.str]]]]):
pulumi.set(self, "middlewares", value)
@_builtins.property
@pulumi.getter
def path(self) -> Optional[pulumi.Input[_builtins.str]]:
def path(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Path prefix this domain routes, defaults to `/`.
"""
return pulumi.get(self, "path")
@path.setter
def path(self, value: Optional[pulumi.Input[_builtins.str]]):
def path(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "path", value)
@_builtins.property
@pulumi.getter
def port(self) -> Optional[pulumi.Input[_builtins.int]]:
def port(self) -> pulumi.Input[Optional[_builtins.int]]:
"""
Container port that receives the traffic, defaults to `3000`.
"""
return pulumi.get(self, "port")
@port.setter
def port(self, value: Optional[pulumi.Input[_builtins.int]]):
def port(self, value: pulumi.Input[Optional[_builtins.int]]):
pulumi.set(self, "port", value)
@_builtins.property
@pulumi.getter(name="previewDeploymentId")
def preview_deployment_id(self) -> Optional[pulumi.Input[_builtins.str]]:
def preview_deployment_id(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Preview deployment this domain routes to.
"""
return pulumi.get(self, "preview_deployment_id")
@preview_deployment_id.setter
def preview_deployment_id(self, value: Optional[pulumi.Input[_builtins.str]]):
def preview_deployment_id(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "preview_deployment_id", value)
@_builtins.property
@pulumi.getter(name="serviceName")
def service_name(self) -> Optional[pulumi.Input[_builtins.str]]:
def service_name(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Name of the service inside a Compose stack that receives the traffic. Required when `compose_id` is set.
"""
return pulumi.get(self, "service_name")
@service_name.setter
def service_name(self, value: Optional[pulumi.Input[_builtins.str]]):
def service_name(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "service_name", value)
@_builtins.property
@pulumi.getter(name="stripPath")
def strip_path(self) -> Optional[pulumi.Input[_builtins.bool]]:
def strip_path(self) -> pulumi.Input[Optional[_builtins.bool]]:
"""
Strip `path` from the request before forwarding it.
"""
return pulumi.get(self, "strip_path")
@strip_path.setter
def strip_path(self, value: Optional[pulumi.Input[_builtins.bool]]):
def strip_path(self, value: pulumi.Input[Optional[_builtins.bool]]):
pulumi.set(self, "strip_path", value)
@pulumi.input_type
class _DomainState:
def __init__(__self__, *,
application_id: Optional[pulumi.Input[_builtins.str]] = None,
certificate_type: Optional[pulumi.Input[_builtins.str]] = None,
compose_id: Optional[pulumi.Input[_builtins.str]] = None,
created_at: Optional[pulumi.Input[_builtins.str]] = None,
custom_cert_resolver: Optional[pulumi.Input[_builtins.str]] = None,
custom_entrypoint: Optional[pulumi.Input[_builtins.str]] = None,
domain_type: Optional[pulumi.Input[_builtins.str]] = None,
forward_auth_enabled: Optional[pulumi.Input[_builtins.bool]] = None,
host: Optional[pulumi.Input[_builtins.str]] = None,
https: Optional[pulumi.Input[_builtins.bool]] = None,
internal_path: Optional[pulumi.Input[_builtins.str]] = None,
middlewares: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
path: Optional[pulumi.Input[_builtins.str]] = None,
port: Optional[pulumi.Input[_builtins.int]] = None,
preview_deployment_id: Optional[pulumi.Input[_builtins.str]] = None,
service_name: Optional[pulumi.Input[_builtins.str]] = None,
strip_path: Optional[pulumi.Input[_builtins.bool]] = None):
application_id: pulumi.Input[Optional[_builtins.str]] = None,
certificate_type: pulumi.Input[Optional[_builtins.str]] = None,
compose_id: pulumi.Input[Optional[_builtins.str]] = None,
created_at: pulumi.Input[Optional[_builtins.str]] = None,
custom_cert_resolver: pulumi.Input[Optional[_builtins.str]] = None,
custom_entrypoint: pulumi.Input[Optional[_builtins.str]] = None,
domain_type: pulumi.Input[Optional[_builtins.str]] = None,
enabled: pulumi.Input[Optional[_builtins.bool]] = None,
forward_auth_enabled: pulumi.Input[Optional[_builtins.bool]] = None,
host: pulumi.Input[Optional[_builtins.str]] = None,
https: pulumi.Input[Optional[_builtins.bool]] = None,
internal_path: pulumi.Input[Optional[_builtins.str]] = None,
middlewares: pulumi.Input[Optional[Sequence[pulumi.Input[_builtins.str]]]] = None,
path: pulumi.Input[Optional[_builtins.str]] = None,
port: pulumi.Input[Optional[_builtins.int]] = None,
preview_deployment_id: pulumi.Input[Optional[_builtins.str]] = None,
service_name: pulumi.Input[Optional[_builtins.str]] = None,
strip_path: pulumi.Input[Optional[_builtins.bool]] = None):
"""
Input properties used for looking up and filtering Domain resources.
@@ -310,6 +327,7 @@ class _DomainState:
:param pulumi.Input[_builtins.str] custom_cert_resolver: Traefik certificate resolver name, when `certificate_type` is `custom`.
:param pulumi.Input[_builtins.str] custom_entrypoint: Traefik entrypoint to bind, when not using the defaults.
:param pulumi.Input[_builtins.str] domain_type: What kind of target this domain points at. Valid values: `compose`, `application`, `preview`.
:param pulumi.Input[_builtins.bool] enabled: Whether the domain is served. Setting this to `false` removes the route from Traefik but keeps the certificate, path and middleware configuration intact, so the domain can be brought back without reconfiguring it.
:param pulumi.Input[_builtins.bool] forward_auth_enabled: Protect this domain with Dokploy's forward auth.
:param pulumi.Input[_builtins.str] host: Fully-qualified hostname, for example `api.example.com`.
:param pulumi.Input[_builtins.bool] https: Serve the domain over HTTPS and redirect HTTP traffic to it.
@@ -335,6 +353,8 @@ class _DomainState:
pulumi.set(__self__, "custom_entrypoint", custom_entrypoint)
if domain_type is not None:
pulumi.set(__self__, "domain_type", domain_type)
if enabled is not None:
pulumi.set(__self__, "enabled", enabled)
if forward_auth_enabled is not None:
pulumi.set(__self__, "forward_auth_enabled", forward_auth_enabled)
if host is not None:
@@ -358,206 +378,218 @@ class _DomainState:
@_builtins.property
@pulumi.getter(name="applicationId")
def application_id(self) -> Optional[pulumi.Input[_builtins.str]]:
def application_id(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Application this domain routes to.
"""
return pulumi.get(self, "application_id")
@application_id.setter
def application_id(self, value: Optional[pulumi.Input[_builtins.str]]):
def application_id(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "application_id", value)
@_builtins.property
@pulumi.getter(name="certificateType")
def certificate_type(self) -> Optional[pulumi.Input[_builtins.str]]:
def certificate_type(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
How TLS certificates are obtained. Use `letsencrypt` for automatic certificates. Valid values: `letsencrypt`, `none`, `custom`.
"""
return pulumi.get(self, "certificate_type")
@certificate_type.setter
def certificate_type(self, value: Optional[pulumi.Input[_builtins.str]]):
def certificate_type(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "certificate_type", value)
@_builtins.property
@pulumi.getter(name="composeId")
def compose_id(self) -> Optional[pulumi.Input[_builtins.str]]:
def compose_id(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Compose stack this domain routes to.
"""
return pulumi.get(self, "compose_id")
@compose_id.setter
def compose_id(self, value: Optional[pulumi.Input[_builtins.str]]):
def compose_id(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "compose_id", value)
@_builtins.property
@pulumi.getter(name="createdAt")
def created_at(self) -> Optional[pulumi.Input[_builtins.str]]:
def created_at(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
RFC 3339 timestamp of when the domain was created.
"""
return pulumi.get(self, "created_at")
@created_at.setter
def created_at(self, value: Optional[pulumi.Input[_builtins.str]]):
def created_at(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "created_at", value)
@_builtins.property
@pulumi.getter(name="customCertResolver")
def custom_cert_resolver(self) -> Optional[pulumi.Input[_builtins.str]]:
def custom_cert_resolver(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Traefik certificate resolver name, when `certificate_type` is `custom`.
"""
return pulumi.get(self, "custom_cert_resolver")
@custom_cert_resolver.setter
def custom_cert_resolver(self, value: Optional[pulumi.Input[_builtins.str]]):
def custom_cert_resolver(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "custom_cert_resolver", value)
@_builtins.property
@pulumi.getter(name="customEntrypoint")
def custom_entrypoint(self) -> Optional[pulumi.Input[_builtins.str]]:
def custom_entrypoint(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Traefik entrypoint to bind, when not using the defaults.
"""
return pulumi.get(self, "custom_entrypoint")
@custom_entrypoint.setter
def custom_entrypoint(self, value: Optional[pulumi.Input[_builtins.str]]):
def custom_entrypoint(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "custom_entrypoint", value)
@_builtins.property
@pulumi.getter(name="domainType")
def domain_type(self) -> Optional[pulumi.Input[_builtins.str]]:
def domain_type(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
What kind of target this domain points at. Valid values: `compose`, `application`, `preview`.
"""
return pulumi.get(self, "domain_type")
@domain_type.setter
def domain_type(self, value: Optional[pulumi.Input[_builtins.str]]):
def domain_type(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "domain_type", value)
@_builtins.property
@pulumi.getter
def enabled(self) -> pulumi.Input[Optional[_builtins.bool]]:
"""
Whether the domain is served. Setting this to `false` removes the route from Traefik but keeps the certificate, path and middleware configuration intact, so the domain can be brought back without reconfiguring it.
"""
return pulumi.get(self, "enabled")
@enabled.setter
def enabled(self, value: pulumi.Input[Optional[_builtins.bool]]):
pulumi.set(self, "enabled", value)
@_builtins.property
@pulumi.getter(name="forwardAuthEnabled")
def forward_auth_enabled(self) -> Optional[pulumi.Input[_builtins.bool]]:
def forward_auth_enabled(self) -> pulumi.Input[Optional[_builtins.bool]]:
"""
Protect this domain with Dokploy's forward auth.
"""
return pulumi.get(self, "forward_auth_enabled")
@forward_auth_enabled.setter
def forward_auth_enabled(self, value: Optional[pulumi.Input[_builtins.bool]]):
def forward_auth_enabled(self, value: pulumi.Input[Optional[_builtins.bool]]):
pulumi.set(self, "forward_auth_enabled", value)
@_builtins.property
@pulumi.getter
def host(self) -> Optional[pulumi.Input[_builtins.str]]:
def host(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Fully-qualified hostname, for example `api.example.com`.
"""
return pulumi.get(self, "host")
@host.setter
def host(self, value: Optional[pulumi.Input[_builtins.str]]):
def host(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "host", value)
@_builtins.property
@pulumi.getter
def https(self) -> Optional[pulumi.Input[_builtins.bool]]:
def https(self) -> pulumi.Input[Optional[_builtins.bool]]:
"""
Serve the domain over HTTPS and redirect HTTP traffic to it.
"""
return pulumi.get(self, "https")
@https.setter
def https(self, value: Optional[pulumi.Input[_builtins.bool]]):
def https(self, value: pulumi.Input[Optional[_builtins.bool]]):
pulumi.set(self, "https", value)
@_builtins.property
@pulumi.getter(name="internalPath")
def internal_path(self) -> Optional[pulumi.Input[_builtins.str]]:
def internal_path(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Path the request is rewritten to before it reaches the container, defaults to `/`.
"""
return pulumi.get(self, "internal_path")
@internal_path.setter
def internal_path(self, value: Optional[pulumi.Input[_builtins.str]]):
def internal_path(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "internal_path", value)
@_builtins.property
@pulumi.getter
def middlewares(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
def middlewares(self) -> pulumi.Input[Optional[Sequence[pulumi.Input[_builtins.str]]]]:
"""
Names of Traefik middlewares to apply.
"""
return pulumi.get(self, "middlewares")
@middlewares.setter
def middlewares(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
def middlewares(self, value: pulumi.Input[Optional[Sequence[pulumi.Input[_builtins.str]]]]):
pulumi.set(self, "middlewares", value)
@_builtins.property
@pulumi.getter
def path(self) -> Optional[pulumi.Input[_builtins.str]]:
def path(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Path prefix this domain routes, defaults to `/`.
"""
return pulumi.get(self, "path")
@path.setter
def path(self, value: Optional[pulumi.Input[_builtins.str]]):
def path(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "path", value)
@_builtins.property
@pulumi.getter
def port(self) -> Optional[pulumi.Input[_builtins.int]]:
def port(self) -> pulumi.Input[Optional[_builtins.int]]:
"""
Container port that receives the traffic, defaults to `3000`.
"""
return pulumi.get(self, "port")
@port.setter
def port(self, value: Optional[pulumi.Input[_builtins.int]]):
def port(self, value: pulumi.Input[Optional[_builtins.int]]):
pulumi.set(self, "port", value)
@_builtins.property
@pulumi.getter(name="previewDeploymentId")
def preview_deployment_id(self) -> Optional[pulumi.Input[_builtins.str]]:
def preview_deployment_id(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Preview deployment this domain routes to.
"""
return pulumi.get(self, "preview_deployment_id")
@preview_deployment_id.setter
def preview_deployment_id(self, value: Optional[pulumi.Input[_builtins.str]]):
def preview_deployment_id(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "preview_deployment_id", value)
@_builtins.property
@pulumi.getter(name="serviceName")
def service_name(self) -> Optional[pulumi.Input[_builtins.str]]:
def service_name(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Name of the service inside a Compose stack that receives the traffic. Required when `compose_id` is set.
"""
return pulumi.get(self, "service_name")
@service_name.setter
def service_name(self, value: Optional[pulumi.Input[_builtins.str]]):
def service_name(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "service_name", value)
@_builtins.property
@pulumi.getter(name="stripPath")
def strip_path(self) -> Optional[pulumi.Input[_builtins.bool]]:
def strip_path(self) -> pulumi.Input[Optional[_builtins.bool]]:
"""
Strip `path` from the request before forwarding it.
"""
return pulumi.get(self, "strip_path")
@strip_path.setter
def strip_path(self, value: Optional[pulumi.Input[_builtins.bool]]):
def strip_path(self, value: pulumi.Input[Optional[_builtins.bool]]):
pulumi.set(self, "strip_path", value)
@@ -567,25 +599,29 @@ class Domain(pulumi.CustomResource):
def __init__(__self__,
resource_name: str,
opts: Optional[pulumi.ResourceOptions] = None,
application_id: Optional[pulumi.Input[_builtins.str]] = None,
certificate_type: Optional[pulumi.Input[_builtins.str]] = None,
compose_id: Optional[pulumi.Input[_builtins.str]] = None,
custom_cert_resolver: Optional[pulumi.Input[_builtins.str]] = None,
custom_entrypoint: Optional[pulumi.Input[_builtins.str]] = None,
domain_type: Optional[pulumi.Input[_builtins.str]] = None,
forward_auth_enabled: Optional[pulumi.Input[_builtins.bool]] = None,
host: Optional[pulumi.Input[_builtins.str]] = None,
https: Optional[pulumi.Input[_builtins.bool]] = None,
internal_path: Optional[pulumi.Input[_builtins.str]] = None,
middlewares: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
path: Optional[pulumi.Input[_builtins.str]] = None,
port: Optional[pulumi.Input[_builtins.int]] = None,
preview_deployment_id: Optional[pulumi.Input[_builtins.str]] = None,
service_name: Optional[pulumi.Input[_builtins.str]] = None,
strip_path: Optional[pulumi.Input[_builtins.bool]] = None,
application_id: pulumi.Input[Optional[_builtins.str]] = None,
certificate_type: pulumi.Input[Optional[_builtins.str]] = None,
compose_id: pulumi.Input[Optional[_builtins.str]] = None,
custom_cert_resolver: pulumi.Input[Optional[_builtins.str]] = None,
custom_entrypoint: pulumi.Input[Optional[_builtins.str]] = None,
domain_type: pulumi.Input[Optional[_builtins.str]] = None,
enabled: pulumi.Input[Optional[_builtins.bool]] = None,
forward_auth_enabled: pulumi.Input[Optional[_builtins.bool]] = None,
host: pulumi.Input[Optional[_builtins.str]] = None,
https: pulumi.Input[Optional[_builtins.bool]] = None,
internal_path: pulumi.Input[Optional[_builtins.str]] = None,
middlewares: pulumi.Input[Optional[Sequence[pulumi.Input[_builtins.str]]]] = None,
path: pulumi.Input[Optional[_builtins.str]] = None,
port: pulumi.Input[Optional[_builtins.int]] = None,
preview_deployment_id: pulumi.Input[Optional[_builtins.str]] = None,
service_name: pulumi.Input[Optional[_builtins.str]] = None,
strip_path: pulumi.Input[Optional[_builtins.bool]] = None,
__props__=None):
"""
Create a Domain resource with the given unique name, props, and options.
A domain routed to an application or a Compose service through Dokploy's Traefik instance.
Set exactly one of `application_id` or `compose_id`. When targeting a Compose stack, `service_name` selects which service in the stack receives the traffic.
:param str resource_name: The name of the resource.
:param pulumi.ResourceOptions opts: Options for the resource.
@@ -595,6 +631,7 @@ class Domain(pulumi.CustomResource):
:param pulumi.Input[_builtins.str] custom_cert_resolver: Traefik certificate resolver name, when `certificate_type` is `custom`.
:param pulumi.Input[_builtins.str] custom_entrypoint: Traefik entrypoint to bind, when not using the defaults.
:param pulumi.Input[_builtins.str] domain_type: What kind of target this domain points at. Valid values: `compose`, `application`, `preview`.
:param pulumi.Input[_builtins.bool] enabled: Whether the domain is served. Setting this to `false` removes the route from Traefik but keeps the certificate, path and middleware configuration intact, so the domain can be brought back without reconfiguring it.
:param pulumi.Input[_builtins.bool] forward_auth_enabled: Protect this domain with Dokploy's forward auth.
:param pulumi.Input[_builtins.str] host: Fully-qualified hostname, for example `api.example.com`.
:param pulumi.Input[_builtins.bool] https: Serve the domain over HTTPS and redirect HTTP traffic to it.
@@ -613,7 +650,10 @@ class Domain(pulumi.CustomResource):
args: DomainArgs,
opts: Optional[pulumi.ResourceOptions] = None):
"""
Create a Domain resource with the given unique name, props, and options.
A domain routed to an application or a Compose service through Dokploy's Traefik instance.
Set exactly one of `application_id` or `compose_id`. When targeting a Compose stack, `service_name` selects which service in the stack receives the traffic.
:param str resource_name: The name of the resource.
:param DomainArgs args: The arguments to use to populate this resource's properties.
@@ -630,22 +670,23 @@ class Domain(pulumi.CustomResource):
def _internal_init(__self__,
resource_name: str,
opts: Optional[pulumi.ResourceOptions] = None,
application_id: Optional[pulumi.Input[_builtins.str]] = None,
certificate_type: Optional[pulumi.Input[_builtins.str]] = None,
compose_id: Optional[pulumi.Input[_builtins.str]] = None,
custom_cert_resolver: Optional[pulumi.Input[_builtins.str]] = None,
custom_entrypoint: Optional[pulumi.Input[_builtins.str]] = None,
domain_type: Optional[pulumi.Input[_builtins.str]] = None,
forward_auth_enabled: Optional[pulumi.Input[_builtins.bool]] = None,
host: Optional[pulumi.Input[_builtins.str]] = None,
https: Optional[pulumi.Input[_builtins.bool]] = None,
internal_path: Optional[pulumi.Input[_builtins.str]] = None,
middlewares: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
path: Optional[pulumi.Input[_builtins.str]] = None,
port: Optional[pulumi.Input[_builtins.int]] = None,
preview_deployment_id: Optional[pulumi.Input[_builtins.str]] = None,
service_name: Optional[pulumi.Input[_builtins.str]] = None,
strip_path: Optional[pulumi.Input[_builtins.bool]] = None,
application_id: pulumi.Input[Optional[_builtins.str]] = None,
certificate_type: pulumi.Input[Optional[_builtins.str]] = None,
compose_id: pulumi.Input[Optional[_builtins.str]] = None,
custom_cert_resolver: pulumi.Input[Optional[_builtins.str]] = None,
custom_entrypoint: pulumi.Input[Optional[_builtins.str]] = None,
domain_type: pulumi.Input[Optional[_builtins.str]] = None,
enabled: pulumi.Input[Optional[_builtins.bool]] = None,
forward_auth_enabled: pulumi.Input[Optional[_builtins.bool]] = None,
host: pulumi.Input[Optional[_builtins.str]] = None,
https: pulumi.Input[Optional[_builtins.bool]] = None,
internal_path: pulumi.Input[Optional[_builtins.str]] = None,
middlewares: pulumi.Input[Optional[Sequence[pulumi.Input[_builtins.str]]]] = None,
path: pulumi.Input[Optional[_builtins.str]] = None,
port: pulumi.Input[Optional[_builtins.int]] = None,
preview_deployment_id: pulumi.Input[Optional[_builtins.str]] = None,
service_name: pulumi.Input[Optional[_builtins.str]] = None,
strip_path: pulumi.Input[Optional[_builtins.bool]] = None,
__props__=None):
opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
if not isinstance(opts, pulumi.ResourceOptions):
@@ -661,6 +702,7 @@ class Domain(pulumi.CustomResource):
__props__.__dict__["custom_cert_resolver"] = custom_cert_resolver
__props__.__dict__["custom_entrypoint"] = custom_entrypoint
__props__.__dict__["domain_type"] = domain_type
__props__.__dict__["enabled"] = enabled
__props__.__dict__["forward_auth_enabled"] = forward_auth_enabled
if host is None and not opts.urn:
raise TypeError("Missing required property 'host'")
@@ -684,23 +726,24 @@ class Domain(pulumi.CustomResource):
def get(resource_name: str,
id: pulumi.Input[str],
opts: Optional[pulumi.ResourceOptions] = None,
application_id: Optional[pulumi.Input[_builtins.str]] = None,
certificate_type: Optional[pulumi.Input[_builtins.str]] = None,
compose_id: Optional[pulumi.Input[_builtins.str]] = None,
created_at: Optional[pulumi.Input[_builtins.str]] = None,
custom_cert_resolver: Optional[pulumi.Input[_builtins.str]] = None,
custom_entrypoint: Optional[pulumi.Input[_builtins.str]] = None,
domain_type: Optional[pulumi.Input[_builtins.str]] = None,
forward_auth_enabled: Optional[pulumi.Input[_builtins.bool]] = None,
host: Optional[pulumi.Input[_builtins.str]] = None,
https: Optional[pulumi.Input[_builtins.bool]] = None,
internal_path: Optional[pulumi.Input[_builtins.str]] = None,
middlewares: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
path: Optional[pulumi.Input[_builtins.str]] = None,
port: Optional[pulumi.Input[_builtins.int]] = None,
preview_deployment_id: Optional[pulumi.Input[_builtins.str]] = None,
service_name: Optional[pulumi.Input[_builtins.str]] = None,
strip_path: Optional[pulumi.Input[_builtins.bool]] = None) -> 'Domain':
application_id: pulumi.Input[Optional[_builtins.str]] = None,
certificate_type: pulumi.Input[Optional[_builtins.str]] = None,
compose_id: pulumi.Input[Optional[_builtins.str]] = None,
created_at: pulumi.Input[Optional[_builtins.str]] = None,
custom_cert_resolver: pulumi.Input[Optional[_builtins.str]] = None,
custom_entrypoint: pulumi.Input[Optional[_builtins.str]] = None,
domain_type: pulumi.Input[Optional[_builtins.str]] = None,
enabled: pulumi.Input[Optional[_builtins.bool]] = None,
forward_auth_enabled: pulumi.Input[Optional[_builtins.bool]] = None,
host: pulumi.Input[Optional[_builtins.str]] = None,
https: pulumi.Input[Optional[_builtins.bool]] = None,
internal_path: pulumi.Input[Optional[_builtins.str]] = None,
middlewares: pulumi.Input[Optional[Sequence[pulumi.Input[_builtins.str]]]] = None,
path: pulumi.Input[Optional[_builtins.str]] = None,
port: pulumi.Input[Optional[_builtins.int]] = None,
preview_deployment_id: pulumi.Input[Optional[_builtins.str]] = None,
service_name: pulumi.Input[Optional[_builtins.str]] = None,
strip_path: pulumi.Input[Optional[_builtins.bool]] = None) -> 'Domain':
"""
Get an existing Domain resource's state with the given name, id, and optional extra
properties used to qualify the lookup.
@@ -715,6 +758,7 @@ class Domain(pulumi.CustomResource):
:param pulumi.Input[_builtins.str] custom_cert_resolver: Traefik certificate resolver name, when `certificate_type` is `custom`.
:param pulumi.Input[_builtins.str] custom_entrypoint: Traefik entrypoint to bind, when not using the defaults.
:param pulumi.Input[_builtins.str] domain_type: What kind of target this domain points at. Valid values: `compose`, `application`, `preview`.
:param pulumi.Input[_builtins.bool] enabled: Whether the domain is served. Setting this to `false` removes the route from Traefik but keeps the certificate, path and middleware configuration intact, so the domain can be brought back without reconfiguring it.
:param pulumi.Input[_builtins.bool] forward_auth_enabled: Protect this domain with Dokploy's forward auth.
:param pulumi.Input[_builtins.str] host: Fully-qualified hostname, for example `api.example.com`.
:param pulumi.Input[_builtins.bool] https: Serve the domain over HTTPS and redirect HTTP traffic to it.
@@ -737,6 +781,7 @@ class Domain(pulumi.CustomResource):
__props__.__dict__["custom_cert_resolver"] = custom_cert_resolver
__props__.__dict__["custom_entrypoint"] = custom_entrypoint
__props__.__dict__["domain_type"] = domain_type
__props__.__dict__["enabled"] = enabled
__props__.__dict__["forward_auth_enabled"] = forward_auth_enabled
__props__.__dict__["host"] = host
__props__.__dict__["https"] = https
@@ -805,6 +850,14 @@ class Domain(pulumi.CustomResource):
"""
return pulumi.get(self, "domain_type")
@_builtins.property
@pulumi.getter
def enabled(self) -> pulumi.Output[_builtins.bool]:
"""
Whether the domain is served. Setting this to `false` removes the route from Traefik but keeps the certificate, path and middleware configuration intact, so the domain can be brought back without reconfiguring it.
"""
return pulumi.get(self, "enabled")
@_builtins.property
@pulumi.getter(name="forwardAuthEnabled")
def forward_auth_enabled(self) -> pulumi.Output[_builtins.bool]:
+49 -43
View File
@@ -20,9 +20,9 @@ __all__ = ['EnvironmentArgs', 'Environment']
class EnvironmentArgs:
def __init__(__self__, *,
project_id: pulumi.Input[_builtins.str],
description: Optional[pulumi.Input[_builtins.str]] = None,
env: Optional[pulumi.Input[_builtins.str]] = None,
name: Optional[pulumi.Input[_builtins.str]] = None):
description: pulumi.Input[Optional[_builtins.str]] = None,
env: pulumi.Input[Optional[_builtins.str]] = None,
name: pulumi.Input[Optional[_builtins.str]] = None):
"""
The set of arguments for constructing a Environment resource.
@@ -53,50 +53,50 @@ class EnvironmentArgs:
@_builtins.property
@pulumi.getter
def description(self) -> Optional[pulumi.Input[_builtins.str]]:
def description(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Free-form description.
"""
return pulumi.get(self, "description")
@description.setter
def description(self, value: Optional[pulumi.Input[_builtins.str]]):
def description(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "description", value)
@_builtins.property
@pulumi.getter
def env(self) -> Optional[pulumi.Input[_builtins.str]]:
def env(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Environment-wide variables in `KEY=value` format, one per line. These are merged into every service in this environment.
"""
return pulumi.get(self, "env")
@env.setter
def env(self, value: Optional[pulumi.Input[_builtins.str]]):
def env(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "env", value)
@_builtins.property
@pulumi.getter
def name(self) -> Optional[pulumi.Input[_builtins.str]]:
def name(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Environment name, for example `staging`.
"""
return pulumi.get(self, "name")
@name.setter
def name(self, value: Optional[pulumi.Input[_builtins.str]]):
def name(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "name", value)
@pulumi.input_type
class _EnvironmentState:
def __init__(__self__, *,
created_at: Optional[pulumi.Input[_builtins.str]] = None,
description: Optional[pulumi.Input[_builtins.str]] = None,
env: Optional[pulumi.Input[_builtins.str]] = None,
is_default: Optional[pulumi.Input[_builtins.bool]] = None,
name: Optional[pulumi.Input[_builtins.str]] = None,
project_id: Optional[pulumi.Input[_builtins.str]] = None):
created_at: pulumi.Input[Optional[_builtins.str]] = None,
description: pulumi.Input[Optional[_builtins.str]] = None,
env: pulumi.Input[Optional[_builtins.str]] = None,
is_default: pulumi.Input[Optional[_builtins.bool]] = None,
name: pulumi.Input[Optional[_builtins.str]] = None,
project_id: pulumi.Input[Optional[_builtins.str]] = None):
"""
Input properties used for looking up and filtering Environment resources.
@@ -122,74 +122,74 @@ class _EnvironmentState:
@_builtins.property
@pulumi.getter(name="createdAt")
def created_at(self) -> Optional[pulumi.Input[_builtins.str]]:
def created_at(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
RFC 3339 timestamp of when the environment was created.
"""
return pulumi.get(self, "created_at")
@created_at.setter
def created_at(self, value: Optional[pulumi.Input[_builtins.str]]):
def created_at(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "created_at", value)
@_builtins.property
@pulumi.getter
def description(self) -> Optional[pulumi.Input[_builtins.str]]:
def description(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Free-form description.
"""
return pulumi.get(self, "description")
@description.setter
def description(self, value: Optional[pulumi.Input[_builtins.str]]):
def description(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "description", value)
@_builtins.property
@pulumi.getter
def env(self) -> Optional[pulumi.Input[_builtins.str]]:
def env(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Environment-wide variables in `KEY=value` format, one per line. These are merged into every service in this environment.
"""
return pulumi.get(self, "env")
@env.setter
def env(self, value: Optional[pulumi.Input[_builtins.str]]):
def env(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "env", value)
@_builtins.property
@pulumi.getter(name="isDefault")
def is_default(self) -> Optional[pulumi.Input[_builtins.bool]]:
def is_default(self) -> pulumi.Input[Optional[_builtins.bool]]:
"""
Whether this is the project's default environment.
"""
return pulumi.get(self, "is_default")
@is_default.setter
def is_default(self, value: Optional[pulumi.Input[_builtins.bool]]):
def is_default(self, value: pulumi.Input[Optional[_builtins.bool]]):
pulumi.set(self, "is_default", value)
@_builtins.property
@pulumi.getter
def name(self) -> Optional[pulumi.Input[_builtins.str]]:
def name(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Environment name, for example `staging`.
"""
return pulumi.get(self, "name")
@name.setter
def name(self, value: Optional[pulumi.Input[_builtins.str]]):
def name(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "name", value)
@_builtins.property
@pulumi.getter(name="projectId")
def project_id(self) -> Optional[pulumi.Input[_builtins.str]]:
def project_id(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Project this environment belongs to.
"""
return pulumi.get(self, "project_id")
@project_id.setter
def project_id(self, value: Optional[pulumi.Input[_builtins.str]]):
def project_id(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "project_id", value)
@@ -199,13 +199,16 @@ class Environment(pulumi.CustomResource):
def __init__(__self__,
resource_name: str,
opts: Optional[pulumi.ResourceOptions] = None,
description: Optional[pulumi.Input[_builtins.str]] = None,
env: Optional[pulumi.Input[_builtins.str]] = None,
name: Optional[pulumi.Input[_builtins.str]] = None,
project_id: Optional[pulumi.Input[_builtins.str]] = None,
description: pulumi.Input[Optional[_builtins.str]] = None,
env: pulumi.Input[Optional[_builtins.str]] = None,
name: pulumi.Input[Optional[_builtins.str]] = None,
project_id: pulumi.Input[Optional[_builtins.str]] = None,
__props__=None):
"""
Create a Environment resource with the given unique name, props, and options.
An environment inside a Dokploy project, such as `staging` or `production`. Services belong to an environment rather than directly to a project.
Dokploy creates a default `production` environment with every project; reference it via `dokploy_project.<name>.default_environment_id` instead of declaring it here.
:param str resource_name: The name of the resource.
:param pulumi.ResourceOptions opts: Options for the resource.
@@ -221,7 +224,10 @@ class Environment(pulumi.CustomResource):
args: EnvironmentArgs,
opts: Optional[pulumi.ResourceOptions] = None):
"""
Create a Environment resource with the given unique name, props, and options.
An environment inside a Dokploy project, such as `staging` or `production`. Services belong to an environment rather than directly to a project.
Dokploy creates a default `production` environment with every project; reference it via `dokploy_project.<name>.default_environment_id` instead of declaring it here.
:param str resource_name: The name of the resource.
:param EnvironmentArgs args: The arguments to use to populate this resource's properties.
@@ -238,10 +244,10 @@ class Environment(pulumi.CustomResource):
def _internal_init(__self__,
resource_name: str,
opts: Optional[pulumi.ResourceOptions] = None,
description: Optional[pulumi.Input[_builtins.str]] = None,
env: Optional[pulumi.Input[_builtins.str]] = None,
name: Optional[pulumi.Input[_builtins.str]] = None,
project_id: Optional[pulumi.Input[_builtins.str]] = None,
description: pulumi.Input[Optional[_builtins.str]] = None,
env: pulumi.Input[Optional[_builtins.str]] = None,
name: pulumi.Input[Optional[_builtins.str]] = None,
project_id: pulumi.Input[Optional[_builtins.str]] = None,
__props__=None):
opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
if not isinstance(opts, pulumi.ResourceOptions):
@@ -269,12 +275,12 @@ class Environment(pulumi.CustomResource):
def get(resource_name: str,
id: pulumi.Input[str],
opts: Optional[pulumi.ResourceOptions] = None,
created_at: Optional[pulumi.Input[_builtins.str]] = None,
description: Optional[pulumi.Input[_builtins.str]] = None,
env: Optional[pulumi.Input[_builtins.str]] = None,
is_default: Optional[pulumi.Input[_builtins.bool]] = None,
name: Optional[pulumi.Input[_builtins.str]] = None,
project_id: Optional[pulumi.Input[_builtins.str]] = None) -> 'Environment':
created_at: pulumi.Input[Optional[_builtins.str]] = None,
description: pulumi.Input[Optional[_builtins.str]] = None,
env: pulumi.Input[Optional[_builtins.str]] = None,
is_default: pulumi.Input[Optional[_builtins.bool]] = None,
name: pulumi.Input[Optional[_builtins.str]] = None,
project_id: pulumi.Input[Optional[_builtins.str]] = None) -> 'Environment':
"""
Get an existing Environment resource's state with the given name, id, and optional extra
properties used to qualify the lookup.
+36 -3
View File
@@ -58,46 +58,73 @@ class GetApplicationResult:
@_builtins.property
@pulumi.getter(name="appName")
def app_name(self) -> _builtins.str:
"""
Docker service name.
"""
return pulumi.get(self, "app_name")
@_builtins.property
@pulumi.getter(name="applicationStatus")
def application_status(self) -> _builtins.str:
"""
Current status.
"""
return pulumi.get(self, "application_status")
@_builtins.property
@pulumi.getter(name="buildType")
def build_type(self) -> _builtins.str:
"""
Build strategy.
"""
return pulumi.get(self, "build_type")
@_builtins.property
@pulumi.getter(name="createdAt")
def created_at(self) -> _builtins.str:
"""
Creation timestamp.
"""
return pulumi.get(self, "created_at")
@_builtins.property
@pulumi.getter
def description(self) -> _builtins.str:
"""
Application description.
"""
return pulumi.get(self, "description")
@_builtins.property
@pulumi.getter(name="environmentId")
def environment_id(self) -> _builtins.str:
"""
Owning environment.
"""
return pulumi.get(self, "environment_id")
@_builtins.property
@pulumi.getter
def id(self) -> _builtins.str:
"""
Application identifier.
"""
return pulumi.get(self, "id")
@_builtins.property
@pulumi.getter
def name(self) -> _builtins.str:
"""
Application name.
"""
return pulumi.get(self, "name")
@_builtins.property
@pulumi.getter(name="sourceType")
def source_type(self) -> _builtins.str:
"""
Source of the code or image.
"""
return pulumi.get(self, "source_type")
@@ -121,7 +148,10 @@ class AwaitableGetApplicationResult(GetApplicationResult):
def get_application(id: Optional[_builtins.str] = None,
opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetApplicationResult:
"""
Use this data source to access information about an existing resource.
Look up an existing application by ID.
:param _builtins.str id: Application identifier.
"""
__args__ = dict()
__args__['id'] = id
@@ -138,10 +168,13 @@ def get_application(id: Optional[_builtins.str] = None,
id=pulumi.get(__ret__, 'id'),
name=pulumi.get(__ret__, 'name'),
source_type=pulumi.get(__ret__, 'source_type'))
def get_application_output(id: Optional[pulumi.Input[_builtins.str]] = None,
def get_application_output(id: pulumi.Input[Optional[_builtins.str]] = None,
opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetApplicationResult]:
"""
Use this data source to access information about an existing resource.
Look up an existing application by ID.
:param _builtins.str id: Application identifier.
"""
__args__ = dict()
__args__['id'] = id
+30 -3
View File
@@ -52,36 +52,57 @@ class GetEnvironmentResult:
@_builtins.property
@pulumi.getter(name="createdAt")
def created_at(self) -> _builtins.str:
"""
Creation timestamp.
"""
return pulumi.get(self, "created_at")
@_builtins.property
@pulumi.getter
def description(self) -> _builtins.str:
"""
Environment description.
"""
return pulumi.get(self, "description")
@_builtins.property
@pulumi.getter
def env(self) -> _builtins.str:
"""
Environment-wide variables.
"""
return pulumi.get(self, "env")
@_builtins.property
@pulumi.getter
def id(self) -> _builtins.str:
"""
Environment identifier.
"""
return pulumi.get(self, "id")
@_builtins.property
@pulumi.getter(name="isDefault")
def is_default(self) -> _builtins.bool:
"""
Whether this is the project's default environment.
"""
return pulumi.get(self, "is_default")
@_builtins.property
@pulumi.getter
def name(self) -> _builtins.str:
"""
Environment name.
"""
return pulumi.get(self, "name")
@_builtins.property
@pulumi.getter(name="projectId")
def project_id(self) -> _builtins.str:
"""
Owning project.
"""
return pulumi.get(self, "project_id")
@@ -103,7 +124,10 @@ class AwaitableGetEnvironmentResult(GetEnvironmentResult):
def get_environment(id: Optional[_builtins.str] = None,
opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetEnvironmentResult:
"""
Use this data source to access information about an existing resource.
Look up an existing environment by ID.
:param _builtins.str id: Environment identifier.
"""
__args__ = dict()
__args__['id'] = id
@@ -118,10 +142,13 @@ def get_environment(id: Optional[_builtins.str] = None,
is_default=pulumi.get(__ret__, 'is_default'),
name=pulumi.get(__ret__, 'name'),
project_id=pulumi.get(__ret__, 'project_id'))
def get_environment_output(id: Optional[pulumi.Input[_builtins.str]] = None,
def get_environment_output(id: pulumi.Input[Optional[_builtins.str]] = None,
opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetEnvironmentResult]:
"""
Use this data source to access information about an existing resource.
Look up an existing environment by ID.
:param _builtins.str id: Environment identifier.
"""
__args__ = dict()
__args__['id'] = id
+33 -3
View File
@@ -56,41 +56,65 @@ class GetProjectResult:
@_builtins.property
@pulumi.getter(name="createdAt")
def created_at(self) -> _builtins.str:
"""
Creation timestamp.
"""
return pulumi.get(self, "created_at")
@_builtins.property
@pulumi.getter(name="defaultEnvironmentId")
def default_environment_id(self) -> _builtins.str:
"""
ID of the project's default environment.
"""
return pulumi.get(self, "default_environment_id")
@_builtins.property
@pulumi.getter
def description(self) -> _builtins.str:
"""
Project description.
"""
return pulumi.get(self, "description")
@_builtins.property
@pulumi.getter
def env(self) -> _builtins.str:
"""
Project-wide environment variables.
"""
return pulumi.get(self, "env")
@_builtins.property
@pulumi.getter
def environments(self) -> Sequence['outputs.GetProjectEnvironmentResult']:
"""
Every environment in the project.
"""
return pulumi.get(self, "environments")
@_builtins.property
@pulumi.getter
def id(self) -> _builtins.str:
"""
Project identifier.
"""
return pulumi.get(self, "id")
@_builtins.property
@pulumi.getter
def name(self) -> _builtins.str:
"""
Project name.
"""
return pulumi.get(self, "name")
@_builtins.property
@pulumi.getter(name="organizationId")
def organization_id(self) -> _builtins.str:
"""
Owning organization.
"""
return pulumi.get(self, "organization_id")
@@ -113,7 +137,10 @@ class AwaitableGetProjectResult(GetProjectResult):
def get_project(id: Optional[_builtins.str] = None,
opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetProjectResult:
"""
Use this data source to access information about an existing resource.
Look up an existing Dokploy project by ID, including its environments.
:param _builtins.str id: Project identifier.
"""
__args__ = dict()
__args__['id'] = id
@@ -129,10 +156,13 @@ def get_project(id: Optional[_builtins.str] = None,
id=pulumi.get(__ret__, 'id'),
name=pulumi.get(__ret__, 'name'),
organization_id=pulumi.get(__ret__, 'organization_id'))
def get_project_output(id: Optional[pulumi.Input[_builtins.str]] = None,
def get_project_output(id: pulumi.Input[Optional[_builtins.str]] = None,
opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetProjectResult]:
"""
Use this data source to access information about an existing resource.
Look up an existing Dokploy project by ID, including its environments.
:param _builtins.str id: Project identifier.
"""
__args__ = dict()
__args__['id'] = id
+5 -2
View File
@@ -35,6 +35,9 @@ class GetProjectsResult:
@_builtins.property
@pulumi.getter
def projects(self) -> Sequence['outputs.GetProjectsProjectResult']:
"""
All visible projects.
"""
return pulumi.get(self, "projects")
@@ -49,7 +52,7 @@ class AwaitableGetProjectsResult(GetProjectsResult):
def get_projects(opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetProjectsResult:
"""
Use this data source to access information about an existing resource.
List every Dokploy project the API token can see.
"""
__args__ = dict()
opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
@@ -59,7 +62,7 @@ def get_projects(opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetPro
projects=pulumi.get(__ret__, 'projects'))
def get_projects_output(opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetProjectsResult]:
"""
Use this data source to access information about an existing resource.
List every Dokploy project the API token can see.
"""
__args__ = dict()
opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
+5 -2
View File
@@ -35,6 +35,9 @@ class GetServersResult:
@_builtins.property
@pulumi.getter
def servers(self) -> Sequence['outputs.GetServersServerResult']:
"""
All registered servers.
"""
return pulumi.get(self, "servers")
@@ -49,7 +52,7 @@ class AwaitableGetServersResult(GetServersResult):
def get_servers(opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetServersResult:
"""
Use this data source to access information about an existing resource.
List the remote servers registered with Dokploy. Use a server's `id` as the `server_id` of an application, stack, or database to deploy it away from the Dokploy host.
"""
__args__ = dict()
opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
@@ -59,7 +62,7 @@ def get_servers(opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetServ
servers=pulumi.get(__ret__, 'servers'))
def get_servers_output(opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetServersResult]:
"""
Use this data source to access information about an existing resource.
List the remote servers registered with Dokploy. Use a server's `id` as the `server_id` of an application, stack, or database to deploy it away from the Dokploy host.
"""
__args__ = dict()
opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
+1733
View File
File diff suppressed because it is too large Load Diff
+290 -280
View File
File diff suppressed because it is too large Load Diff
+290 -280
View File
File diff suppressed because it is too large Load Diff
+83 -69
View File
@@ -23,16 +23,16 @@ class MountArgs:
service_id: pulumi.Input[_builtins.str],
service_type: pulumi.Input[_builtins.str],
type: pulumi.Input[_builtins.str],
content: Optional[pulumi.Input[_builtins.str]] = None,
file_path: Optional[pulumi.Input[_builtins.str]] = None,
host_path: Optional[pulumi.Input[_builtins.str]] = None,
volume_name: Optional[pulumi.Input[_builtins.str]] = None):
content: pulumi.Input[Optional[_builtins.str]] = None,
file_path: pulumi.Input[Optional[_builtins.str]] = None,
host_path: pulumi.Input[Optional[_builtins.str]] = None,
volume_name: pulumi.Input[Optional[_builtins.str]] = None):
"""
The set of arguments for constructing a Mount resource.
:param pulumi.Input[_builtins.str] mount_path: Path inside the container where the mount appears.
:param pulumi.Input[_builtins.str] service_id: ID of the service this mount attaches to. Must match `service_type` — an application ID, a compose ID, a postgres ID, and so on.
:param pulumi.Input[_builtins.str] service_type: The kind of service this mount attaches to. Valid values: `application`, `postgres`, `mysql`, `mariadb`, `mongo`, `redis`, `compose`.
:param pulumi.Input[_builtins.str] service_type: The kind of service this mount attaches to. Valid values: `application`, `postgres`, `mysql`, `mariadb`, `mongo`, `redis`, `compose`, `libsql`.
:param pulumi.Input[_builtins.str] type: The kind of mount to create. Valid values: `bind`, `volume`, `file`.
:param pulumi.Input[_builtins.str] content: Contents of the generated file, when `type` is `file`.
:param pulumi.Input[_builtins.str] file_path: Path of the generated file, when `type` is `file`.
@@ -80,7 +80,7 @@ class MountArgs:
@pulumi.getter(name="serviceType")
def service_type(self) -> pulumi.Input[_builtins.str]:
"""
The kind of service this mount attaches to. Valid values: `application`, `postgres`, `mysql`, `mariadb`, `mongo`, `redis`, `compose`.
The kind of service this mount attaches to. Valid values: `application`, `postgres`, `mysql`, `mariadb`, `mongo`, `redis`, `compose`, `libsql`.
"""
return pulumi.get(self, "service_type")
@@ -102,64 +102,64 @@ class MountArgs:
@_builtins.property
@pulumi.getter
def content(self) -> Optional[pulumi.Input[_builtins.str]]:
def content(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Contents of the generated file, when `type` is `file`.
"""
return pulumi.get(self, "content")
@content.setter
def content(self, value: Optional[pulumi.Input[_builtins.str]]):
def content(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "content", value)
@_builtins.property
@pulumi.getter(name="filePath")
def file_path(self) -> Optional[pulumi.Input[_builtins.str]]:
def file_path(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Path of the generated file, when `type` is `file`.
"""
return pulumi.get(self, "file_path")
@file_path.setter
def file_path(self, value: Optional[pulumi.Input[_builtins.str]]):
def file_path(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "file_path", value)
@_builtins.property
@pulumi.getter(name="hostPath")
def host_path(self) -> Optional[pulumi.Input[_builtins.str]]:
def host_path(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Path on the host, when `type` is `bind`.
"""
return pulumi.get(self, "host_path")
@host_path.setter
def host_path(self, value: Optional[pulumi.Input[_builtins.str]]):
def host_path(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "host_path", value)
@_builtins.property
@pulumi.getter(name="volumeName")
def volume_name(self) -> Optional[pulumi.Input[_builtins.str]]:
def volume_name(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Name of the Docker volume, when `type` is `volume`.
"""
return pulumi.get(self, "volume_name")
@volume_name.setter
def volume_name(self, value: Optional[pulumi.Input[_builtins.str]]):
def volume_name(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "volume_name", value)
@pulumi.input_type
class _MountState:
def __init__(__self__, *,
content: Optional[pulumi.Input[_builtins.str]] = None,
file_path: Optional[pulumi.Input[_builtins.str]] = None,
host_path: Optional[pulumi.Input[_builtins.str]] = None,
mount_path: Optional[pulumi.Input[_builtins.str]] = None,
service_id: Optional[pulumi.Input[_builtins.str]] = None,
service_type: Optional[pulumi.Input[_builtins.str]] = None,
type: Optional[pulumi.Input[_builtins.str]] = None,
volume_name: Optional[pulumi.Input[_builtins.str]] = None):
content: pulumi.Input[Optional[_builtins.str]] = None,
file_path: pulumi.Input[Optional[_builtins.str]] = None,
host_path: pulumi.Input[Optional[_builtins.str]] = None,
mount_path: pulumi.Input[Optional[_builtins.str]] = None,
service_id: pulumi.Input[Optional[_builtins.str]] = None,
service_type: pulumi.Input[Optional[_builtins.str]] = None,
type: pulumi.Input[Optional[_builtins.str]] = None,
volume_name: pulumi.Input[Optional[_builtins.str]] = None):
"""
Input properties used for looking up and filtering Mount resources.
@@ -168,7 +168,7 @@ class _MountState:
:param pulumi.Input[_builtins.str] host_path: Path on the host, when `type` is `bind`.
:param pulumi.Input[_builtins.str] mount_path: Path inside the container where the mount appears.
:param pulumi.Input[_builtins.str] service_id: ID of the service this mount attaches to. Must match `service_type` — an application ID, a compose ID, a postgres ID, and so on.
:param pulumi.Input[_builtins.str] service_type: The kind of service this mount attaches to. Valid values: `application`, `postgres`, `mysql`, `mariadb`, `mongo`, `redis`, `compose`.
:param pulumi.Input[_builtins.str] service_type: The kind of service this mount attaches to. Valid values: `application`, `postgres`, `mysql`, `mariadb`, `mongo`, `redis`, `compose`, `libsql`.
:param pulumi.Input[_builtins.str] type: The kind of mount to create. Valid values: `bind`, `volume`, `file`.
:param pulumi.Input[_builtins.str] volume_name: Name of the Docker volume, when `type` is `volume`.
"""
@@ -191,98 +191,98 @@ class _MountState:
@_builtins.property
@pulumi.getter
def content(self) -> Optional[pulumi.Input[_builtins.str]]:
def content(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Contents of the generated file, when `type` is `file`.
"""
return pulumi.get(self, "content")
@content.setter
def content(self, value: Optional[pulumi.Input[_builtins.str]]):
def content(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "content", value)
@_builtins.property
@pulumi.getter(name="filePath")
def file_path(self) -> Optional[pulumi.Input[_builtins.str]]:
def file_path(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Path of the generated file, when `type` is `file`.
"""
return pulumi.get(self, "file_path")
@file_path.setter
def file_path(self, value: Optional[pulumi.Input[_builtins.str]]):
def file_path(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "file_path", value)
@_builtins.property
@pulumi.getter(name="hostPath")
def host_path(self) -> Optional[pulumi.Input[_builtins.str]]:
def host_path(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Path on the host, when `type` is `bind`.
"""
return pulumi.get(self, "host_path")
@host_path.setter
def host_path(self, value: Optional[pulumi.Input[_builtins.str]]):
def host_path(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "host_path", value)
@_builtins.property
@pulumi.getter(name="mountPath")
def mount_path(self) -> Optional[pulumi.Input[_builtins.str]]:
def mount_path(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Path inside the container where the mount appears.
"""
return pulumi.get(self, "mount_path")
@mount_path.setter
def mount_path(self, value: Optional[pulumi.Input[_builtins.str]]):
def mount_path(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "mount_path", value)
@_builtins.property
@pulumi.getter(name="serviceId")
def service_id(self) -> Optional[pulumi.Input[_builtins.str]]:
def service_id(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
ID of the service this mount attaches to. Must match `service_type` — an application ID, a compose ID, a postgres ID, and so on.
"""
return pulumi.get(self, "service_id")
@service_id.setter
def service_id(self, value: Optional[pulumi.Input[_builtins.str]]):
def service_id(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "service_id", value)
@_builtins.property
@pulumi.getter(name="serviceType")
def service_type(self) -> Optional[pulumi.Input[_builtins.str]]:
def service_type(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
The kind of service this mount attaches to. Valid values: `application`, `postgres`, `mysql`, `mariadb`, `mongo`, `redis`, `compose`.
The kind of service this mount attaches to. Valid values: `application`, `postgres`, `mysql`, `mariadb`, `mongo`, `redis`, `compose`, `libsql`.
"""
return pulumi.get(self, "service_type")
@service_type.setter
def service_type(self, value: Optional[pulumi.Input[_builtins.str]]):
def service_type(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "service_type", value)
@_builtins.property
@pulumi.getter
def type(self) -> Optional[pulumi.Input[_builtins.str]]:
def type(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
The kind of mount to create. Valid values: `bind`, `volume`, `file`.
"""
return pulumi.get(self, "type")
@type.setter
def type(self, value: Optional[pulumi.Input[_builtins.str]]):
def type(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "type", value)
@_builtins.property
@pulumi.getter(name="volumeName")
def volume_name(self) -> Optional[pulumi.Input[_builtins.str]]:
def volume_name(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Name of the Docker volume, when `type` is `volume`.
"""
return pulumi.get(self, "volume_name")
@volume_name.setter
def volume_name(self, value: Optional[pulumi.Input[_builtins.str]]):
def volume_name(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "volume_name", value)
@@ -292,17 +292,24 @@ class Mount(pulumi.CustomResource):
def __init__(__self__,
resource_name: str,
opts: Optional[pulumi.ResourceOptions] = None,
content: Optional[pulumi.Input[_builtins.str]] = None,
file_path: Optional[pulumi.Input[_builtins.str]] = None,
host_path: Optional[pulumi.Input[_builtins.str]] = None,
mount_path: Optional[pulumi.Input[_builtins.str]] = None,
service_id: Optional[pulumi.Input[_builtins.str]] = None,
service_type: Optional[pulumi.Input[_builtins.str]] = None,
type: Optional[pulumi.Input[_builtins.str]] = None,
volume_name: Optional[pulumi.Input[_builtins.str]] = None,
content: pulumi.Input[Optional[_builtins.str]] = None,
file_path: pulumi.Input[Optional[_builtins.str]] = None,
host_path: pulumi.Input[Optional[_builtins.str]] = None,
mount_path: pulumi.Input[Optional[_builtins.str]] = None,
service_id: pulumi.Input[Optional[_builtins.str]] = None,
service_type: pulumi.Input[Optional[_builtins.str]] = None,
type: pulumi.Input[Optional[_builtins.str]] = None,
volume_name: pulumi.Input[Optional[_builtins.str]] = None,
__props__=None):
"""
Create a Mount resource with the given unique name, props, and options.
A volume, bind mount, or config file attached to a Dokploy service.
* `type = "volume"` — a named Docker volume; set `volume_name`.
* `type = "bind"` — a path on the host; set `host_path`.
* `type = "file"` — a file rendered from `content`; set `file_path`.
> **A `volume` mount must set `volume_name`.** Dokploy hands an unset name to Docker as an empty source, which creates a fresh anonymous volume on every deploy and orphans the previous one — the data never survives a redeploy. The provider rejects that combination at plan time.
:param str resource_name: The name of the resource.
:param pulumi.ResourceOptions opts: Options for the resource.
@@ -311,7 +318,7 @@ class Mount(pulumi.CustomResource):
:param pulumi.Input[_builtins.str] host_path: Path on the host, when `type` is `bind`.
:param pulumi.Input[_builtins.str] mount_path: Path inside the container where the mount appears.
:param pulumi.Input[_builtins.str] service_id: ID of the service this mount attaches to. Must match `service_type` — an application ID, a compose ID, a postgres ID, and so on.
:param pulumi.Input[_builtins.str] service_type: The kind of service this mount attaches to. Valid values: `application`, `postgres`, `mysql`, `mariadb`, `mongo`, `redis`, `compose`.
:param pulumi.Input[_builtins.str] service_type: The kind of service this mount attaches to. Valid values: `application`, `postgres`, `mysql`, `mariadb`, `mongo`, `redis`, `compose`, `libsql`.
:param pulumi.Input[_builtins.str] type: The kind of mount to create. Valid values: `bind`, `volume`, `file`.
:param pulumi.Input[_builtins.str] volume_name: Name of the Docker volume, when `type` is `volume`.
"""
@@ -322,7 +329,14 @@ class Mount(pulumi.CustomResource):
args: MountArgs,
opts: Optional[pulumi.ResourceOptions] = None):
"""
Create a Mount resource with the given unique name, props, and options.
A volume, bind mount, or config file attached to a Dokploy service.
* `type = "volume"` — a named Docker volume; set `volume_name`.
* `type = "bind"` — a path on the host; set `host_path`.
* `type = "file"` — a file rendered from `content`; set `file_path`.
> **A `volume` mount must set `volume_name`.** Dokploy hands an unset name to Docker as an empty source, which creates a fresh anonymous volume on every deploy and orphans the previous one — the data never survives a redeploy. The provider rejects that combination at plan time.
:param str resource_name: The name of the resource.
:param MountArgs args: The arguments to use to populate this resource's properties.
@@ -339,14 +353,14 @@ class Mount(pulumi.CustomResource):
def _internal_init(__self__,
resource_name: str,
opts: Optional[pulumi.ResourceOptions] = None,
content: Optional[pulumi.Input[_builtins.str]] = None,
file_path: Optional[pulumi.Input[_builtins.str]] = None,
host_path: Optional[pulumi.Input[_builtins.str]] = None,
mount_path: Optional[pulumi.Input[_builtins.str]] = None,
service_id: Optional[pulumi.Input[_builtins.str]] = None,
service_type: Optional[pulumi.Input[_builtins.str]] = None,
type: Optional[pulumi.Input[_builtins.str]] = None,
volume_name: Optional[pulumi.Input[_builtins.str]] = None,
content: pulumi.Input[Optional[_builtins.str]] = None,
file_path: pulumi.Input[Optional[_builtins.str]] = None,
host_path: pulumi.Input[Optional[_builtins.str]] = None,
mount_path: pulumi.Input[Optional[_builtins.str]] = None,
service_id: pulumi.Input[Optional[_builtins.str]] = None,
service_type: pulumi.Input[Optional[_builtins.str]] = None,
type: pulumi.Input[Optional[_builtins.str]] = None,
volume_name: pulumi.Input[Optional[_builtins.str]] = None,
__props__=None):
opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
if not isinstance(opts, pulumi.ResourceOptions):
@@ -382,14 +396,14 @@ class Mount(pulumi.CustomResource):
def get(resource_name: str,
id: pulumi.Input[str],
opts: Optional[pulumi.ResourceOptions] = None,
content: Optional[pulumi.Input[_builtins.str]] = None,
file_path: Optional[pulumi.Input[_builtins.str]] = None,
host_path: Optional[pulumi.Input[_builtins.str]] = None,
mount_path: Optional[pulumi.Input[_builtins.str]] = None,
service_id: Optional[pulumi.Input[_builtins.str]] = None,
service_type: Optional[pulumi.Input[_builtins.str]] = None,
type: Optional[pulumi.Input[_builtins.str]] = None,
volume_name: Optional[pulumi.Input[_builtins.str]] = None) -> 'Mount':
content: pulumi.Input[Optional[_builtins.str]] = None,
file_path: pulumi.Input[Optional[_builtins.str]] = None,
host_path: pulumi.Input[Optional[_builtins.str]] = None,
mount_path: pulumi.Input[Optional[_builtins.str]] = None,
service_id: pulumi.Input[Optional[_builtins.str]] = None,
service_type: pulumi.Input[Optional[_builtins.str]] = None,
type: pulumi.Input[Optional[_builtins.str]] = None,
volume_name: pulumi.Input[Optional[_builtins.str]] = None) -> 'Mount':
"""
Get an existing Mount resource's state with the given name, id, and optional extra
properties used to qualify the lookup.
@@ -402,7 +416,7 @@ class Mount(pulumi.CustomResource):
:param pulumi.Input[_builtins.str] host_path: Path on the host, when `type` is `bind`.
:param pulumi.Input[_builtins.str] mount_path: Path inside the container where the mount appears.
:param pulumi.Input[_builtins.str] service_id: ID of the service this mount attaches to. Must match `service_type` — an application ID, a compose ID, a postgres ID, and so on.
:param pulumi.Input[_builtins.str] service_type: The kind of service this mount attaches to. Valid values: `application`, `postgres`, `mysql`, `mariadb`, `mongo`, `redis`, `compose`.
:param pulumi.Input[_builtins.str] service_type: The kind of service this mount attaches to. Valid values: `application`, `postgres`, `mysql`, `mariadb`, `mongo`, `redis`, `compose`, `libsql`.
:param pulumi.Input[_builtins.str] type: The kind of mount to create. Valid values: `bind`, `volume`, `file`.
:param pulumi.Input[_builtins.str] volume_name: Name of the Docker volume, when `type` is `volume`.
"""
@@ -464,7 +478,7 @@ class Mount(pulumi.CustomResource):
@pulumi.getter(name="serviceType")
def service_type(self) -> pulumi.Output[_builtins.str]:
"""
The kind of service this mount attaches to. Valid values: `application`, `postgres`, `mysql`, `mariadb`, `mongo`, `redis`, `compose`.
The kind of service this mount attaches to. Valid values: `application`, `postgres`, `mysql`, `mariadb`, `mongo`, `redis`, `compose`, `libsql`.
"""
return pulumi.get(self, "service_type")
+290 -280
View File
File diff suppressed because it is too large Load Diff
+595
View File
@@ -0,0 +1,595 @@
# coding=utf-8
# *** WARNING: this file was generated by pulumi-language-python. ***
# *** Do not edit by hand unless you're certain you know what you are doing! ***
import builtins as _builtins
import warnings
import sys
import pulumi
import pulumi.runtime
from typing import Any, Mapping, Optional, Sequence, Union, overload
if sys.version_info >= (3, 11):
from typing import NotRequired, TypedDict, TypeAlias
else:
from typing_extensions import NotRequired, TypedDict, TypeAlias
from . import _utilities
__all__ = ['NetworkArgs', 'Network']
@pulumi.input_type
class NetworkArgs:
def __init__(__self__, *,
attachable: pulumi.Input[Optional[_builtins.bool]] = None,
driver: pulumi.Input[Optional[_builtins.str]] = None,
enable_ipv4: pulumi.Input[Optional[_builtins.bool]] = None,
enable_ipv6: pulumi.Input[Optional[_builtins.bool]] = None,
internal: pulumi.Input[Optional[_builtins.bool]] = None,
ipam: pulumi.Input[Optional[_builtins.str]] = None,
mtu: pulumi.Input[Optional[_builtins.int]] = None,
name: pulumi.Input[Optional[_builtins.str]] = None,
server_id: pulumi.Input[Optional[_builtins.str]] = None):
"""
The set of arguments for constructing a Network resource.
:param pulumi.Input[_builtins.bool] attachable: Allow standalone containers to attach to an overlay network.
:param pulumi.Input[_builtins.str] driver: Network driver. Use `overlay` for multi-node Swarm clusters and `bridge` for a single host. Valid values: `bridge`, `overlay`.
:param pulumi.Input[_builtins.bool] enable_ipv4: Enable IPv4 address allocation.
:param pulumi.Input[_builtins.bool] enable_ipv6: Enable IPv6 address allocation.
:param pulumi.Input[_builtins.bool] internal: Isolate the network from external access.
:param pulumi.Input[_builtins.str] ipam: Custom IP address management, as a JSON object with `subnet`, `gateway` and `ipRange` keys. Leave unset to let Docker choose a subnet.
:param pulumi.Input[_builtins.int] mtu: Maximum transmission unit for the network. Leave unset to use Docker's default.
:param pulumi.Input[_builtins.str] name: Name of the Docker network.
:param pulumi.Input[_builtins.str] server_id: Remote server to create the network on. Omit to use the Dokploy host itself.
"""
if attachable is not None:
pulumi.set(__self__, "attachable", attachable)
if driver is not None:
pulumi.set(__self__, "driver", driver)
if enable_ipv4 is not None:
pulumi.set(__self__, "enable_ipv4", enable_ipv4)
if enable_ipv6 is not None:
pulumi.set(__self__, "enable_ipv6", enable_ipv6)
if internal is not None:
pulumi.set(__self__, "internal", internal)
if ipam is not None:
pulumi.set(__self__, "ipam", ipam)
if mtu is not None:
pulumi.set(__self__, "mtu", mtu)
if name is not None:
pulumi.set(__self__, "name", name)
if server_id is not None:
pulumi.set(__self__, "server_id", server_id)
@_builtins.property
@pulumi.getter
def attachable(self) -> pulumi.Input[Optional[_builtins.bool]]:
"""
Allow standalone containers to attach to an overlay network.
"""
return pulumi.get(self, "attachable")
@attachable.setter
def attachable(self, value: pulumi.Input[Optional[_builtins.bool]]):
pulumi.set(self, "attachable", value)
@_builtins.property
@pulumi.getter
def driver(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Network driver. Use `overlay` for multi-node Swarm clusters and `bridge` for a single host. Valid values: `bridge`, `overlay`.
"""
return pulumi.get(self, "driver")
@driver.setter
def driver(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "driver", value)
@_builtins.property
@pulumi.getter(name="enableIpv4")
def enable_ipv4(self) -> pulumi.Input[Optional[_builtins.bool]]:
"""
Enable IPv4 address allocation.
"""
return pulumi.get(self, "enable_ipv4")
@enable_ipv4.setter
def enable_ipv4(self, value: pulumi.Input[Optional[_builtins.bool]]):
pulumi.set(self, "enable_ipv4", value)
@_builtins.property
@pulumi.getter(name="enableIpv6")
def enable_ipv6(self) -> pulumi.Input[Optional[_builtins.bool]]:
"""
Enable IPv6 address allocation.
"""
return pulumi.get(self, "enable_ipv6")
@enable_ipv6.setter
def enable_ipv6(self, value: pulumi.Input[Optional[_builtins.bool]]):
pulumi.set(self, "enable_ipv6", value)
@_builtins.property
@pulumi.getter
def internal(self) -> pulumi.Input[Optional[_builtins.bool]]:
"""
Isolate the network from external access.
"""
return pulumi.get(self, "internal")
@internal.setter
def internal(self, value: pulumi.Input[Optional[_builtins.bool]]):
pulumi.set(self, "internal", value)
@_builtins.property
@pulumi.getter
def ipam(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Custom IP address management, as a JSON object with `subnet`, `gateway` and `ipRange` keys. Leave unset to let Docker choose a subnet.
"""
return pulumi.get(self, "ipam")
@ipam.setter
def ipam(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "ipam", value)
@_builtins.property
@pulumi.getter
def mtu(self) -> pulumi.Input[Optional[_builtins.int]]:
"""
Maximum transmission unit for the network. Leave unset to use Docker's default.
"""
return pulumi.get(self, "mtu")
@mtu.setter
def mtu(self, value: pulumi.Input[Optional[_builtins.int]]):
pulumi.set(self, "mtu", value)
@_builtins.property
@pulumi.getter
def name(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Name of the Docker network.
"""
return pulumi.get(self, "name")
@name.setter
def name(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "name", value)
@_builtins.property
@pulumi.getter(name="serverId")
def server_id(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Remote server to create the network on. Omit to use the Dokploy host itself.
"""
return pulumi.get(self, "server_id")
@server_id.setter
def server_id(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "server_id", value)
@pulumi.input_type
class _NetworkState:
def __init__(__self__, *,
attachable: pulumi.Input[Optional[_builtins.bool]] = None,
created_at: pulumi.Input[Optional[_builtins.str]] = None,
driver: pulumi.Input[Optional[_builtins.str]] = None,
enable_ipv4: pulumi.Input[Optional[_builtins.bool]] = None,
enable_ipv6: pulumi.Input[Optional[_builtins.bool]] = None,
internal: pulumi.Input[Optional[_builtins.bool]] = None,
ipam: pulumi.Input[Optional[_builtins.str]] = None,
mtu: pulumi.Input[Optional[_builtins.int]] = None,
name: pulumi.Input[Optional[_builtins.str]] = None,
organization_id: pulumi.Input[Optional[_builtins.str]] = None,
server_id: pulumi.Input[Optional[_builtins.str]] = None):
"""
Input properties used for looking up and filtering Network resources.
:param pulumi.Input[_builtins.bool] attachable: Allow standalone containers to attach to an overlay network.
:param pulumi.Input[_builtins.str] created_at: RFC 3339 timestamp of when the network was created.
:param pulumi.Input[_builtins.str] driver: Network driver. Use `overlay` for multi-node Swarm clusters and `bridge` for a single host. Valid values: `bridge`, `overlay`.
:param pulumi.Input[_builtins.bool] enable_ipv4: Enable IPv4 address allocation.
:param pulumi.Input[_builtins.bool] enable_ipv6: Enable IPv6 address allocation.
:param pulumi.Input[_builtins.bool] internal: Isolate the network from external access.
:param pulumi.Input[_builtins.str] ipam: Custom IP address management, as a JSON object with `subnet`, `gateway` and `ipRange` keys. Leave unset to let Docker choose a subnet.
:param pulumi.Input[_builtins.int] mtu: Maximum transmission unit for the network. Leave unset to use Docker's default.
:param pulumi.Input[_builtins.str] name: Name of the Docker network.
:param pulumi.Input[_builtins.str] organization_id: Organization that owns the network.
:param pulumi.Input[_builtins.str] server_id: Remote server to create the network on. Omit to use the Dokploy host itself.
"""
if attachable is not None:
pulumi.set(__self__, "attachable", attachable)
if created_at is not None:
pulumi.set(__self__, "created_at", created_at)
if driver is not None:
pulumi.set(__self__, "driver", driver)
if enable_ipv4 is not None:
pulumi.set(__self__, "enable_ipv4", enable_ipv4)
if enable_ipv6 is not None:
pulumi.set(__self__, "enable_ipv6", enable_ipv6)
if internal is not None:
pulumi.set(__self__, "internal", internal)
if ipam is not None:
pulumi.set(__self__, "ipam", ipam)
if mtu is not None:
pulumi.set(__self__, "mtu", mtu)
if name is not None:
pulumi.set(__self__, "name", name)
if organization_id is not None:
pulumi.set(__self__, "organization_id", organization_id)
if server_id is not None:
pulumi.set(__self__, "server_id", server_id)
@_builtins.property
@pulumi.getter
def attachable(self) -> pulumi.Input[Optional[_builtins.bool]]:
"""
Allow standalone containers to attach to an overlay network.
"""
return pulumi.get(self, "attachable")
@attachable.setter
def attachable(self, value: pulumi.Input[Optional[_builtins.bool]]):
pulumi.set(self, "attachable", value)
@_builtins.property
@pulumi.getter(name="createdAt")
def created_at(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
RFC 3339 timestamp of when the network was created.
"""
return pulumi.get(self, "created_at")
@created_at.setter
def created_at(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "created_at", value)
@_builtins.property
@pulumi.getter
def driver(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Network driver. Use `overlay` for multi-node Swarm clusters and `bridge` for a single host. Valid values: `bridge`, `overlay`.
"""
return pulumi.get(self, "driver")
@driver.setter
def driver(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "driver", value)
@_builtins.property
@pulumi.getter(name="enableIpv4")
def enable_ipv4(self) -> pulumi.Input[Optional[_builtins.bool]]:
"""
Enable IPv4 address allocation.
"""
return pulumi.get(self, "enable_ipv4")
@enable_ipv4.setter
def enable_ipv4(self, value: pulumi.Input[Optional[_builtins.bool]]):
pulumi.set(self, "enable_ipv4", value)
@_builtins.property
@pulumi.getter(name="enableIpv6")
def enable_ipv6(self) -> pulumi.Input[Optional[_builtins.bool]]:
"""
Enable IPv6 address allocation.
"""
return pulumi.get(self, "enable_ipv6")
@enable_ipv6.setter
def enable_ipv6(self, value: pulumi.Input[Optional[_builtins.bool]]):
pulumi.set(self, "enable_ipv6", value)
@_builtins.property
@pulumi.getter
def internal(self) -> pulumi.Input[Optional[_builtins.bool]]:
"""
Isolate the network from external access.
"""
return pulumi.get(self, "internal")
@internal.setter
def internal(self, value: pulumi.Input[Optional[_builtins.bool]]):
pulumi.set(self, "internal", value)
@_builtins.property
@pulumi.getter
def ipam(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Custom IP address management, as a JSON object with `subnet`, `gateway` and `ipRange` keys. Leave unset to let Docker choose a subnet.
"""
return pulumi.get(self, "ipam")
@ipam.setter
def ipam(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "ipam", value)
@_builtins.property
@pulumi.getter
def mtu(self) -> pulumi.Input[Optional[_builtins.int]]:
"""
Maximum transmission unit for the network. Leave unset to use Docker's default.
"""
return pulumi.get(self, "mtu")
@mtu.setter
def mtu(self, value: pulumi.Input[Optional[_builtins.int]]):
pulumi.set(self, "mtu", value)
@_builtins.property
@pulumi.getter
def name(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Name of the Docker network.
"""
return pulumi.get(self, "name")
@name.setter
def name(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "name", value)
@_builtins.property
@pulumi.getter(name="organizationId")
def organization_id(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Organization that owns the network.
"""
return pulumi.get(self, "organization_id")
@organization_id.setter
def organization_id(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "organization_id", value)
@_builtins.property
@pulumi.getter(name="serverId")
def server_id(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Remote server to create the network on. Omit to use the Dokploy host itself.
"""
return pulumi.get(self, "server_id")
@server_id.setter
def server_id(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "server_id", value)
@pulumi.type_token("dokploy:index/network:Network")
class Network(pulumi.CustomResource):
@overload
def __init__(__self__,
resource_name: str,
opts: Optional[pulumi.ResourceOptions] = None,
attachable: pulumi.Input[Optional[_builtins.bool]] = None,
driver: pulumi.Input[Optional[_builtins.str]] = None,
enable_ipv4: pulumi.Input[Optional[_builtins.bool]] = None,
enable_ipv6: pulumi.Input[Optional[_builtins.bool]] = None,
internal: pulumi.Input[Optional[_builtins.bool]] = None,
ipam: pulumi.Input[Optional[_builtins.str]] = None,
mtu: pulumi.Input[Optional[_builtins.int]] = None,
name: pulumi.Input[Optional[_builtins.str]] = None,
server_id: pulumi.Input[Optional[_builtins.str]] = None,
__props__=None):
"""
A Docker network managed by Dokploy.
Attach services to it with `network_ids` on `Application`, `Compose` and the database resources. Every service also joins the shared `dokploy-network` unless `detach_dokploy_network` is set.
> Docker networks are immutable. Dokploy has no update endpoint, so changing any attribute replaces the network — which detaches the services currently using it until they redeploy.
:param str resource_name: The name of the resource.
:param pulumi.ResourceOptions opts: Options for the resource.
:param pulumi.Input[_builtins.bool] attachable: Allow standalone containers to attach to an overlay network.
:param pulumi.Input[_builtins.str] driver: Network driver. Use `overlay` for multi-node Swarm clusters and `bridge` for a single host. Valid values: `bridge`, `overlay`.
:param pulumi.Input[_builtins.bool] enable_ipv4: Enable IPv4 address allocation.
:param pulumi.Input[_builtins.bool] enable_ipv6: Enable IPv6 address allocation.
:param pulumi.Input[_builtins.bool] internal: Isolate the network from external access.
:param pulumi.Input[_builtins.str] ipam: Custom IP address management, as a JSON object with `subnet`, `gateway` and `ipRange` keys. Leave unset to let Docker choose a subnet.
:param pulumi.Input[_builtins.int] mtu: Maximum transmission unit for the network. Leave unset to use Docker's default.
:param pulumi.Input[_builtins.str] name: Name of the Docker network.
:param pulumi.Input[_builtins.str] server_id: Remote server to create the network on. Omit to use the Dokploy host itself.
"""
...
@overload
def __init__(__self__,
resource_name: str,
args: Optional[NetworkArgs] = None,
opts: Optional[pulumi.ResourceOptions] = None):
"""
A Docker network managed by Dokploy.
Attach services to it with `network_ids` on `Application`, `Compose` and the database resources. Every service also joins the shared `dokploy-network` unless `detach_dokploy_network` is set.
> Docker networks are immutable. Dokploy has no update endpoint, so changing any attribute replaces the network — which detaches the services currently using it until they redeploy.
:param str resource_name: The name of the resource.
:param NetworkArgs args: The arguments to use to populate this resource's properties.
:param pulumi.ResourceOptions opts: Options for the resource.
"""
...
def __init__(__self__, resource_name: str, *args, **kwargs):
resource_args, opts = _utilities.get_resource_args_opts(NetworkArgs, pulumi.ResourceOptions, *args, **kwargs)
if resource_args is not None:
__self__._internal_init(resource_name, opts, **resource_args.__dict__)
else:
__self__._internal_init(resource_name, *args, **kwargs)
def _internal_init(__self__,
resource_name: str,
opts: Optional[pulumi.ResourceOptions] = None,
attachable: pulumi.Input[Optional[_builtins.bool]] = None,
driver: pulumi.Input[Optional[_builtins.str]] = None,
enable_ipv4: pulumi.Input[Optional[_builtins.bool]] = None,
enable_ipv6: pulumi.Input[Optional[_builtins.bool]] = None,
internal: pulumi.Input[Optional[_builtins.bool]] = None,
ipam: pulumi.Input[Optional[_builtins.str]] = None,
mtu: pulumi.Input[Optional[_builtins.int]] = None,
name: pulumi.Input[Optional[_builtins.str]] = None,
server_id: pulumi.Input[Optional[_builtins.str]] = None,
__props__=None):
opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
if not isinstance(opts, pulumi.ResourceOptions):
raise TypeError('Expected resource options to be a ResourceOptions instance')
if opts.id is None:
if __props__ is not None:
raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
__props__ = NetworkArgs.__new__(NetworkArgs)
__props__.__dict__["attachable"] = attachable
__props__.__dict__["driver"] = driver
__props__.__dict__["enable_ipv4"] = enable_ipv4
__props__.__dict__["enable_ipv6"] = enable_ipv6
__props__.__dict__["internal"] = internal
__props__.__dict__["ipam"] = ipam
__props__.__dict__["mtu"] = mtu
__props__.__dict__["name"] = name
__props__.__dict__["server_id"] = server_id
__props__.__dict__["created_at"] = None
__props__.__dict__["organization_id"] = None
super(Network, __self__).__init__(
'dokploy:index/network:Network',
resource_name,
__props__,
opts)
@staticmethod
def get(resource_name: str,
id: pulumi.Input[str],
opts: Optional[pulumi.ResourceOptions] = None,
attachable: pulumi.Input[Optional[_builtins.bool]] = None,
created_at: pulumi.Input[Optional[_builtins.str]] = None,
driver: pulumi.Input[Optional[_builtins.str]] = None,
enable_ipv4: pulumi.Input[Optional[_builtins.bool]] = None,
enable_ipv6: pulumi.Input[Optional[_builtins.bool]] = None,
internal: pulumi.Input[Optional[_builtins.bool]] = None,
ipam: pulumi.Input[Optional[_builtins.str]] = None,
mtu: pulumi.Input[Optional[_builtins.int]] = None,
name: pulumi.Input[Optional[_builtins.str]] = None,
organization_id: pulumi.Input[Optional[_builtins.str]] = None,
server_id: pulumi.Input[Optional[_builtins.str]] = None) -> 'Network':
"""
Get an existing Network resource's state with the given name, id, and optional extra
properties used to qualify the lookup.
:param str resource_name: The unique name of the resulting resource.
:param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
:param pulumi.ResourceOptions opts: Options for the resource.
:param pulumi.Input[_builtins.bool] attachable: Allow standalone containers to attach to an overlay network.
:param pulumi.Input[_builtins.str] created_at: RFC 3339 timestamp of when the network was created.
:param pulumi.Input[_builtins.str] driver: Network driver. Use `overlay` for multi-node Swarm clusters and `bridge` for a single host. Valid values: `bridge`, `overlay`.
:param pulumi.Input[_builtins.bool] enable_ipv4: Enable IPv4 address allocation.
:param pulumi.Input[_builtins.bool] enable_ipv6: Enable IPv6 address allocation.
:param pulumi.Input[_builtins.bool] internal: Isolate the network from external access.
:param pulumi.Input[_builtins.str] ipam: Custom IP address management, as a JSON object with `subnet`, `gateway` and `ipRange` keys. Leave unset to let Docker choose a subnet.
:param pulumi.Input[_builtins.int] mtu: Maximum transmission unit for the network. Leave unset to use Docker's default.
:param pulumi.Input[_builtins.str] name: Name of the Docker network.
:param pulumi.Input[_builtins.str] organization_id: Organization that owns the network.
:param pulumi.Input[_builtins.str] server_id: Remote server to create the network on. Omit to use the Dokploy host itself.
"""
opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
__props__ = _NetworkState.__new__(_NetworkState)
__props__.__dict__["attachable"] = attachable
__props__.__dict__["created_at"] = created_at
__props__.__dict__["driver"] = driver
__props__.__dict__["enable_ipv4"] = enable_ipv4
__props__.__dict__["enable_ipv6"] = enable_ipv6
__props__.__dict__["internal"] = internal
__props__.__dict__["ipam"] = ipam
__props__.__dict__["mtu"] = mtu
__props__.__dict__["name"] = name
__props__.__dict__["organization_id"] = organization_id
__props__.__dict__["server_id"] = server_id
return Network(resource_name, opts=opts, __props__=__props__)
@_builtins.property
@pulumi.getter
def attachable(self) -> pulumi.Output[_builtins.bool]:
"""
Allow standalone containers to attach to an overlay network.
"""
return pulumi.get(self, "attachable")
@_builtins.property
@pulumi.getter(name="createdAt")
def created_at(self) -> pulumi.Output[_builtins.str]:
"""
RFC 3339 timestamp of when the network was created.
"""
return pulumi.get(self, "created_at")
@_builtins.property
@pulumi.getter
def driver(self) -> pulumi.Output[_builtins.str]:
"""
Network driver. Use `overlay` for multi-node Swarm clusters and `bridge` for a single host. Valid values: `bridge`, `overlay`.
"""
return pulumi.get(self, "driver")
@_builtins.property
@pulumi.getter(name="enableIpv4")
def enable_ipv4(self) -> pulumi.Output[_builtins.bool]:
"""
Enable IPv4 address allocation.
"""
return pulumi.get(self, "enable_ipv4")
@_builtins.property
@pulumi.getter(name="enableIpv6")
def enable_ipv6(self) -> pulumi.Output[_builtins.bool]:
"""
Enable IPv6 address allocation.
"""
return pulumi.get(self, "enable_ipv6")
@_builtins.property
@pulumi.getter
def internal(self) -> pulumi.Output[_builtins.bool]:
"""
Isolate the network from external access.
"""
return pulumi.get(self, "internal")
@_builtins.property
@pulumi.getter
def ipam(self) -> pulumi.Output[Optional[_builtins.str]]:
"""
Custom IP address management, as a JSON object with `subnet`, `gateway` and `ipRange` keys. Leave unset to let Docker choose a subnet.
"""
return pulumi.get(self, "ipam")
@_builtins.property
@pulumi.getter
def mtu(self) -> pulumi.Output[Optional[_builtins.int]]:
"""
Maximum transmission unit for the network. Leave unset to use Docker's default.
"""
return pulumi.get(self, "mtu")
@_builtins.property
@pulumi.getter
def name(self) -> pulumi.Output[_builtins.str]:
"""
Name of the Docker network.
"""
return pulumi.get(self, "name")
@_builtins.property
@pulumi.getter(name="organizationId")
def organization_id(self) -> pulumi.Output[_builtins.str]:
"""
Organization that owns the network.
"""
return pulumi.get(self, "organization_id")
@_builtins.property
@pulumi.getter(name="serverId")
def server_id(self) -> pulumi.Output[Optional[_builtins.str]]:
"""
Remote server to create the network on. Omit to use the Dokploy host itself.
"""
return pulumi.get(self, "server_id")
+37 -35
View File
@@ -23,7 +23,7 @@ class PortArgs:
protocol: pulumi.Input[_builtins.str],
published_port: pulumi.Input[_builtins.int],
target_port: pulumi.Input[_builtins.int],
publish_mode: Optional[pulumi.Input[_builtins.str]] = None):
publish_mode: pulumi.Input[Optional[_builtins.str]] = None):
"""
The set of arguments for constructing a Port resource.
@@ -90,25 +90,25 @@ class PortArgs:
@_builtins.property
@pulumi.getter(name="publishMode")
def publish_mode(self) -> Optional[pulumi.Input[_builtins.str]]:
def publish_mode(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Docker Swarm publish mode. `host` binds directly to the node; `ingress` uses the swarm routing mesh. Valid values: `ingress`, `host`.
"""
return pulumi.get(self, "publish_mode")
@publish_mode.setter
def publish_mode(self, value: Optional[pulumi.Input[_builtins.str]]):
def publish_mode(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "publish_mode", value)
@pulumi.input_type
class _PortState:
def __init__(__self__, *,
application_id: Optional[pulumi.Input[_builtins.str]] = None,
protocol: Optional[pulumi.Input[_builtins.str]] = None,
publish_mode: Optional[pulumi.Input[_builtins.str]] = None,
published_port: Optional[pulumi.Input[_builtins.int]] = None,
target_port: Optional[pulumi.Input[_builtins.int]] = None):
application_id: pulumi.Input[Optional[_builtins.str]] = None,
protocol: pulumi.Input[Optional[_builtins.str]] = None,
publish_mode: pulumi.Input[Optional[_builtins.str]] = None,
published_port: pulumi.Input[Optional[_builtins.int]] = None,
target_port: pulumi.Input[Optional[_builtins.int]] = None):
"""
Input properties used for looking up and filtering Port resources.
@@ -131,62 +131,62 @@ class _PortState:
@_builtins.property
@pulumi.getter(name="applicationId")
def application_id(self) -> Optional[pulumi.Input[_builtins.str]]:
def application_id(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Application this port belongs to.
"""
return pulumi.get(self, "application_id")
@application_id.setter
def application_id(self, value: Optional[pulumi.Input[_builtins.str]]):
def application_id(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "application_id", value)
@_builtins.property
@pulumi.getter
def protocol(self) -> Optional[pulumi.Input[_builtins.str]]:
def protocol(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Transport protocol. Valid values: `tcp`, `udp`.
"""
return pulumi.get(self, "protocol")
@protocol.setter
def protocol(self, value: Optional[pulumi.Input[_builtins.str]]):
def protocol(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "protocol", value)
@_builtins.property
@pulumi.getter(name="publishMode")
def publish_mode(self) -> Optional[pulumi.Input[_builtins.str]]:
def publish_mode(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Docker Swarm publish mode. `host` binds directly to the node; `ingress` uses the swarm routing mesh. Valid values: `ingress`, `host`.
"""
return pulumi.get(self, "publish_mode")
@publish_mode.setter
def publish_mode(self, value: Optional[pulumi.Input[_builtins.str]]):
def publish_mode(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "publish_mode", value)
@_builtins.property
@pulumi.getter(name="publishedPort")
def published_port(self) -> Optional[pulumi.Input[_builtins.int]]:
def published_port(self) -> pulumi.Input[Optional[_builtins.int]]:
"""
Port exposed on the host.
"""
return pulumi.get(self, "published_port")
@published_port.setter
def published_port(self, value: Optional[pulumi.Input[_builtins.int]]):
def published_port(self, value: pulumi.Input[Optional[_builtins.int]]):
pulumi.set(self, "published_port", value)
@_builtins.property
@pulumi.getter(name="targetPort")
def target_port(self) -> Optional[pulumi.Input[_builtins.int]]:
def target_port(self) -> pulumi.Input[Optional[_builtins.int]]:
"""
Port the container listens on.
"""
return pulumi.get(self, "target_port")
@target_port.setter
def target_port(self, value: Optional[pulumi.Input[_builtins.int]]):
def target_port(self, value: pulumi.Input[Optional[_builtins.int]]):
pulumi.set(self, "target_port", value)
@@ -196,14 +196,15 @@ class Port(pulumi.CustomResource):
def __init__(__self__,
resource_name: str,
opts: Optional[pulumi.ResourceOptions] = None,
application_id: Optional[pulumi.Input[_builtins.str]] = None,
protocol: Optional[pulumi.Input[_builtins.str]] = None,
publish_mode: Optional[pulumi.Input[_builtins.str]] = None,
published_port: Optional[pulumi.Input[_builtins.int]] = None,
target_port: Optional[pulumi.Input[_builtins.int]] = None,
application_id: pulumi.Input[Optional[_builtins.str]] = None,
protocol: pulumi.Input[Optional[_builtins.str]] = None,
publish_mode: pulumi.Input[Optional[_builtins.str]] = None,
published_port: pulumi.Input[Optional[_builtins.int]] = None,
target_port: pulumi.Input[Optional[_builtins.int]] = None,
__props__=None):
"""
Create a Port resource with the given unique name, props, and options.
A published port that exposes an application directly on the host, bypassing Traefik.
:param str resource_name: The name of the resource.
:param pulumi.ResourceOptions opts: Options for the resource.
@@ -220,7 +221,8 @@ class Port(pulumi.CustomResource):
args: PortArgs,
opts: Optional[pulumi.ResourceOptions] = None):
"""
Create a Port resource with the given unique name, props, and options.
A published port that exposes an application directly on the host, bypassing Traefik.
:param str resource_name: The name of the resource.
:param PortArgs args: The arguments to use to populate this resource's properties.
@@ -237,11 +239,11 @@ class Port(pulumi.CustomResource):
def _internal_init(__self__,
resource_name: str,
opts: Optional[pulumi.ResourceOptions] = None,
application_id: Optional[pulumi.Input[_builtins.str]] = None,
protocol: Optional[pulumi.Input[_builtins.str]] = None,
publish_mode: Optional[pulumi.Input[_builtins.str]] = None,
published_port: Optional[pulumi.Input[_builtins.int]] = None,
target_port: Optional[pulumi.Input[_builtins.int]] = None,
application_id: pulumi.Input[Optional[_builtins.str]] = None,
protocol: pulumi.Input[Optional[_builtins.str]] = None,
publish_mode: pulumi.Input[Optional[_builtins.str]] = None,
published_port: pulumi.Input[Optional[_builtins.int]] = None,
target_port: pulumi.Input[Optional[_builtins.int]] = None,
__props__=None):
opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
if not isinstance(opts, pulumi.ResourceOptions):
@@ -274,11 +276,11 @@ class Port(pulumi.CustomResource):
def get(resource_name: str,
id: pulumi.Input[str],
opts: Optional[pulumi.ResourceOptions] = None,
application_id: Optional[pulumi.Input[_builtins.str]] = None,
protocol: Optional[pulumi.Input[_builtins.str]] = None,
publish_mode: Optional[pulumi.Input[_builtins.str]] = None,
published_port: Optional[pulumi.Input[_builtins.int]] = None,
target_port: Optional[pulumi.Input[_builtins.int]] = None) -> 'Port':
application_id: pulumi.Input[Optional[_builtins.str]] = None,
protocol: pulumi.Input[Optional[_builtins.str]] = None,
publish_mode: pulumi.Input[Optional[_builtins.str]] = None,
published_port: pulumi.Input[Optional[_builtins.int]] = None,
target_port: pulumi.Input[Optional[_builtins.int]] = None) -> 'Port':
"""
Get an existing Port resource's state with the given name, id, and optional extra
properties used to qualify the lookup.
+284 -274
View File
File diff suppressed because it is too large Load Diff
+47 -41
View File
@@ -19,9 +19,9 @@ __all__ = ['ProjectArgs', 'Project']
@pulumi.input_type
class ProjectArgs:
def __init__(__self__, *,
description: Optional[pulumi.Input[_builtins.str]] = None,
env: Optional[pulumi.Input[_builtins.str]] = None,
name: Optional[pulumi.Input[_builtins.str]] = None):
description: pulumi.Input[Optional[_builtins.str]] = None,
env: pulumi.Input[Optional[_builtins.str]] = None,
name: pulumi.Input[Optional[_builtins.str]] = None):
"""
The set of arguments for constructing a Project resource.
@@ -38,50 +38,50 @@ class ProjectArgs:
@_builtins.property
@pulumi.getter
def description(self) -> Optional[pulumi.Input[_builtins.str]]:
def description(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Free-form description.
"""
return pulumi.get(self, "description")
@description.setter
def description(self, value: Optional[pulumi.Input[_builtins.str]]):
def description(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "description", value)
@_builtins.property
@pulumi.getter
def env(self) -> Optional[pulumi.Input[_builtins.str]]:
def env(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Project-wide environment variables in `KEY=value` format, one per line. These are shared with every service in the project.
"""
return pulumi.get(self, "env")
@env.setter
def env(self, value: Optional[pulumi.Input[_builtins.str]]):
def env(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "env", value)
@_builtins.property
@pulumi.getter
def name(self) -> Optional[pulumi.Input[_builtins.str]]:
def name(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Display name of the project.
"""
return pulumi.get(self, "name")
@name.setter
def name(self, value: Optional[pulumi.Input[_builtins.str]]):
def name(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "name", value)
@pulumi.input_type
class _ProjectState:
def __init__(__self__, *,
created_at: Optional[pulumi.Input[_builtins.str]] = None,
default_environment_id: Optional[pulumi.Input[_builtins.str]] = None,
description: Optional[pulumi.Input[_builtins.str]] = None,
env: Optional[pulumi.Input[_builtins.str]] = None,
name: Optional[pulumi.Input[_builtins.str]] = None,
organization_id: Optional[pulumi.Input[_builtins.str]] = None):
created_at: pulumi.Input[Optional[_builtins.str]] = None,
default_environment_id: pulumi.Input[Optional[_builtins.str]] = None,
description: pulumi.Input[Optional[_builtins.str]] = None,
env: pulumi.Input[Optional[_builtins.str]] = None,
name: pulumi.Input[Optional[_builtins.str]] = None,
organization_id: pulumi.Input[Optional[_builtins.str]] = None):
"""
Input properties used for looking up and filtering Project resources.
@@ -107,74 +107,74 @@ class _ProjectState:
@_builtins.property
@pulumi.getter(name="createdAt")
def created_at(self) -> Optional[pulumi.Input[_builtins.str]]:
def created_at(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
RFC 3339 timestamp of when the project was created.
"""
return pulumi.get(self, "created_at")
@created_at.setter
def created_at(self, value: Optional[pulumi.Input[_builtins.str]]):
def created_at(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "created_at", value)
@_builtins.property
@pulumi.getter(name="defaultEnvironmentId")
def default_environment_id(self) -> Optional[pulumi.Input[_builtins.str]]:
def default_environment_id(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
ID of the `production` environment that Dokploy creates automatically with the project.
"""
return pulumi.get(self, "default_environment_id")
@default_environment_id.setter
def default_environment_id(self, value: Optional[pulumi.Input[_builtins.str]]):
def default_environment_id(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "default_environment_id", value)
@_builtins.property
@pulumi.getter
def description(self) -> Optional[pulumi.Input[_builtins.str]]:
def description(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Free-form description.
"""
return pulumi.get(self, "description")
@description.setter
def description(self, value: Optional[pulumi.Input[_builtins.str]]):
def description(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "description", value)
@_builtins.property
@pulumi.getter
def env(self) -> Optional[pulumi.Input[_builtins.str]]:
def env(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Project-wide environment variables in `KEY=value` format, one per line. These are shared with every service in the project.
"""
return pulumi.get(self, "env")
@env.setter
def env(self, value: Optional[pulumi.Input[_builtins.str]]):
def env(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "env", value)
@_builtins.property
@pulumi.getter
def name(self) -> Optional[pulumi.Input[_builtins.str]]:
def name(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Display name of the project.
"""
return pulumi.get(self, "name")
@name.setter
def name(self, value: Optional[pulumi.Input[_builtins.str]]):
def name(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "name", value)
@_builtins.property
@pulumi.getter(name="organizationId")
def organization_id(self) -> Optional[pulumi.Input[_builtins.str]]:
def organization_id(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Organization that owns the project.
"""
return pulumi.get(self, "organization_id")
@organization_id.setter
def organization_id(self, value: Optional[pulumi.Input[_builtins.str]]):
def organization_id(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "organization_id", value)
@@ -184,12 +184,15 @@ class Project(pulumi.CustomResource):
def __init__(__self__,
resource_name: str,
opts: Optional[pulumi.ResourceOptions] = None,
description: Optional[pulumi.Input[_builtins.str]] = None,
env: Optional[pulumi.Input[_builtins.str]] = None,
name: Optional[pulumi.Input[_builtins.str]] = None,
description: pulumi.Input[Optional[_builtins.str]] = None,
env: pulumi.Input[Optional[_builtins.str]] = None,
name: pulumi.Input[Optional[_builtins.str]] = None,
__props__=None):
"""
Create a Project resource with the given unique name, props, and options.
A Dokploy project: the top-level container for environments and services.
Creating a project automatically creates a default `production` environment. Its ID is exposed as `default_environment_id`, so services can be attached without declaring a separate `Environment` resource.
:param str resource_name: The name of the resource.
:param pulumi.ResourceOptions opts: Options for the resource.
@@ -204,7 +207,10 @@ class Project(pulumi.CustomResource):
args: Optional[ProjectArgs] = None,
opts: Optional[pulumi.ResourceOptions] = None):
"""
Create a Project resource with the given unique name, props, and options.
A Dokploy project: the top-level container for environments and services.
Creating a project automatically creates a default `production` environment. Its ID is exposed as `default_environment_id`, so services can be attached without declaring a separate `Environment` resource.
:param str resource_name: The name of the resource.
:param ProjectArgs args: The arguments to use to populate this resource's properties.
@@ -221,9 +227,9 @@ class Project(pulumi.CustomResource):
def _internal_init(__self__,
resource_name: str,
opts: Optional[pulumi.ResourceOptions] = None,
description: Optional[pulumi.Input[_builtins.str]] = None,
env: Optional[pulumi.Input[_builtins.str]] = None,
name: Optional[pulumi.Input[_builtins.str]] = None,
description: pulumi.Input[Optional[_builtins.str]] = None,
env: pulumi.Input[Optional[_builtins.str]] = None,
name: pulumi.Input[Optional[_builtins.str]] = None,
__props__=None):
opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
if not isinstance(opts, pulumi.ResourceOptions):
@@ -249,12 +255,12 @@ class Project(pulumi.CustomResource):
def get(resource_name: str,
id: pulumi.Input[str],
opts: Optional[pulumi.ResourceOptions] = None,
created_at: Optional[pulumi.Input[_builtins.str]] = None,
default_environment_id: Optional[pulumi.Input[_builtins.str]] = None,
description: Optional[pulumi.Input[_builtins.str]] = None,
env: Optional[pulumi.Input[_builtins.str]] = None,
name: Optional[pulumi.Input[_builtins.str]] = None,
organization_id: Optional[pulumi.Input[_builtins.str]] = None) -> 'Project':
created_at: pulumi.Input[Optional[_builtins.str]] = None,
default_environment_id: pulumi.Input[Optional[_builtins.str]] = None,
description: pulumi.Input[Optional[_builtins.str]] = None,
env: pulumi.Input[Optional[_builtins.str]] = None,
name: pulumi.Input[Optional[_builtins.str]] = None,
organization_id: pulumi.Input[Optional[_builtins.str]] = None) -> 'Project':
"""
Get an existing Project resource's state with the given name, id, and optional extra
properties used to qualify the lookup.
+20 -20
View File
@@ -19,10 +19,10 @@ __all__ = ['ProviderArgs', 'Provider']
@pulumi.input_type
class ProviderArgs:
def __init__(__self__, *,
api_key: Optional[pulumi.Input[_builtins.str]] = None,
host: Optional[pulumi.Input[_builtins.str]] = None,
insecure_skip_verify: Optional[pulumi.Input[_builtins.bool]] = None,
timeout_seconds: Optional[pulumi.Input[_builtins.int]] = None):
api_key: pulumi.Input[Optional[_builtins.str]] = None,
host: pulumi.Input[Optional[_builtins.str]] = None,
insecure_skip_verify: pulumi.Input[Optional[_builtins.bool]] = None,
timeout_seconds: pulumi.Input[Optional[_builtins.int]] = None):
"""
The set of arguments for constructing a Provider resource.
@@ -48,50 +48,50 @@ class ProviderArgs:
@_builtins.property
@pulumi.getter(name="apiKey")
def api_key(self) -> Optional[pulumi.Input[_builtins.str]]:
def api_key(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
API token generated in Dokploy under *Settings > Profile > API/CLI*. May also be set with the `DOKPLOY_API_KEY` environment variable.
"""
return pulumi.get(self, "api_key")
@api_key.setter
def api_key(self, value: Optional[pulumi.Input[_builtins.str]]):
def api_key(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "api_key", value)
@_builtins.property
@pulumi.getter
def host(self) -> Optional[pulumi.Input[_builtins.str]]:
def host(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Base URL of the Dokploy instance, for example `https://dokploy.example.com`. A trailing `/api` is optional. May also be set with the `DOKPLOY_HOST` environment variable.
"""
return pulumi.get(self, "host")
@host.setter
def host(self, value: Optional[pulumi.Input[_builtins.str]]):
def host(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "host", value)
@_builtins.property
@pulumi.getter(name="insecureSkipVerify")
def insecure_skip_verify(self) -> Optional[pulumi.Input[_builtins.bool]]:
def insecure_skip_verify(self) -> pulumi.Input[Optional[_builtins.bool]]:
"""
Skip TLS certificate verification. Only use this for instances behind a self-signed certificate. Defaults to `false`.
"""
return pulumi.get(self, "insecure_skip_verify")
@insecure_skip_verify.setter
def insecure_skip_verify(self, value: Optional[pulumi.Input[_builtins.bool]]):
def insecure_skip_verify(self, value: pulumi.Input[Optional[_builtins.bool]]):
pulumi.set(self, "insecure_skip_verify", value)
@_builtins.property
@pulumi.getter(name="timeoutSeconds")
def timeout_seconds(self) -> Optional[pulumi.Input[_builtins.int]]:
def timeout_seconds(self) -> pulumi.Input[Optional[_builtins.int]]:
"""
Per-request timeout in seconds. Defaults to `60`. May also be set with the `DOKPLOY_TIMEOUT_SECONDS` environment variable.
"""
return pulumi.get(self, "timeout_seconds")
@timeout_seconds.setter
def timeout_seconds(self, value: Optional[pulumi.Input[_builtins.int]]):
def timeout_seconds(self, value: pulumi.Input[Optional[_builtins.int]]):
pulumi.set(self, "timeout_seconds", value)
@@ -101,10 +101,10 @@ class Provider(pulumi.ProviderResource):
def __init__(__self__,
resource_name: str,
opts: Optional[pulumi.ResourceOptions] = None,
api_key: Optional[pulumi.Input[_builtins.str]] = None,
host: Optional[pulumi.Input[_builtins.str]] = None,
insecure_skip_verify: Optional[pulumi.Input[_builtins.bool]] = None,
timeout_seconds: Optional[pulumi.Input[_builtins.int]] = None,
api_key: pulumi.Input[Optional[_builtins.str]] = None,
host: pulumi.Input[Optional[_builtins.str]] = None,
insecure_skip_verify: pulumi.Input[Optional[_builtins.bool]] = None,
timeout_seconds: pulumi.Input[Optional[_builtins.int]] = None,
__props__=None):
"""
The provider type for the dokploy package. By default, resources use package-wide configuration
@@ -148,10 +148,10 @@ class Provider(pulumi.ProviderResource):
def _internal_init(__self__,
resource_name: str,
opts: Optional[pulumi.ResourceOptions] = None,
api_key: Optional[pulumi.Input[_builtins.str]] = None,
host: Optional[pulumi.Input[_builtins.str]] = None,
insecure_skip_verify: Optional[pulumi.Input[_builtins.bool]] = None,
timeout_seconds: Optional[pulumi.Input[_builtins.int]] = None,
api_key: pulumi.Input[Optional[_builtins.str]] = None,
host: pulumi.Input[Optional[_builtins.str]] = None,
insecure_skip_verify: pulumi.Input[Optional[_builtins.bool]] = None,
timeout_seconds: pulumi.Input[Optional[_builtins.int]] = None,
__props__=None):
opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
if not isinstance(opts, pulumi.ResourceOptions):
+1 -1
View File
@@ -1,6 +1,6 @@
{
"resource": true,
"name": "dokploy",
"version": "0.1.0",
"version": "0.2.0",
"server": "https://gitea.coolify.vojtkov.dev/usr_unknown/pulumi-dokploy/releases/download/v${VERSION}"
}
+35 -33
View File
@@ -22,7 +22,7 @@ class RedirectArgs:
application_id: pulumi.Input[_builtins.str],
regex: pulumi.Input[_builtins.str],
replacement: pulumi.Input[_builtins.str],
permanent: Optional[pulumi.Input[_builtins.bool]] = None):
permanent: pulumi.Input[Optional[_builtins.bool]] = None):
"""
The set of arguments for constructing a Redirect resource.
@@ -75,25 +75,25 @@ class RedirectArgs:
@_builtins.property
@pulumi.getter
def permanent(self) -> Optional[pulumi.Input[_builtins.bool]]:
def permanent(self) -> pulumi.Input[Optional[_builtins.bool]]:
"""
Issue a permanent (301) redirect instead of a temporary (302) one.
"""
return pulumi.get(self, "permanent")
@permanent.setter
def permanent(self, value: Optional[pulumi.Input[_builtins.bool]]):
def permanent(self, value: pulumi.Input[Optional[_builtins.bool]]):
pulumi.set(self, "permanent", value)
@pulumi.input_type
class _RedirectState:
def __init__(__self__, *,
application_id: Optional[pulumi.Input[_builtins.str]] = None,
created_at: Optional[pulumi.Input[_builtins.str]] = None,
permanent: Optional[pulumi.Input[_builtins.bool]] = None,
regex: Optional[pulumi.Input[_builtins.str]] = None,
replacement: Optional[pulumi.Input[_builtins.str]] = None):
application_id: pulumi.Input[Optional[_builtins.str]] = None,
created_at: pulumi.Input[Optional[_builtins.str]] = None,
permanent: pulumi.Input[Optional[_builtins.bool]] = None,
regex: pulumi.Input[Optional[_builtins.str]] = None,
replacement: pulumi.Input[Optional[_builtins.str]] = None):
"""
Input properties used for looking up and filtering Redirect resources.
@@ -116,62 +116,62 @@ class _RedirectState:
@_builtins.property
@pulumi.getter(name="applicationId")
def application_id(self) -> Optional[pulumi.Input[_builtins.str]]:
def application_id(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Application this redirect belongs to.
"""
return pulumi.get(self, "application_id")
@application_id.setter
def application_id(self, value: Optional[pulumi.Input[_builtins.str]]):
def application_id(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "application_id", value)
@_builtins.property
@pulumi.getter(name="createdAt")
def created_at(self) -> Optional[pulumi.Input[_builtins.str]]:
def created_at(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
RFC 3339 timestamp of when the redirect was created.
"""
return pulumi.get(self, "created_at")
@created_at.setter
def created_at(self, value: Optional[pulumi.Input[_builtins.str]]):
def created_at(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "created_at", value)
@_builtins.property
@pulumi.getter
def permanent(self) -> Optional[pulumi.Input[_builtins.bool]]:
def permanent(self) -> pulumi.Input[Optional[_builtins.bool]]:
"""
Issue a permanent (301) redirect instead of a temporary (302) one.
"""
return pulumi.get(self, "permanent")
@permanent.setter
def permanent(self, value: Optional[pulumi.Input[_builtins.bool]]):
def permanent(self, value: pulumi.Input[Optional[_builtins.bool]]):
pulumi.set(self, "permanent", value)
@_builtins.property
@pulumi.getter
def regex(self) -> Optional[pulumi.Input[_builtins.str]]:
def regex(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Regular expression matched against the incoming URL.
"""
return pulumi.get(self, "regex")
@regex.setter
def regex(self, value: Optional[pulumi.Input[_builtins.str]]):
def regex(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "regex", value)
@_builtins.property
@pulumi.getter
def replacement(self) -> Optional[pulumi.Input[_builtins.str]]:
def replacement(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Replacement URL, which may reference capture groups such as `${1}`.
"""
return pulumi.get(self, "replacement")
@replacement.setter
def replacement(self, value: Optional[pulumi.Input[_builtins.str]]):
def replacement(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "replacement", value)
@@ -181,13 +181,14 @@ class Redirect(pulumi.CustomResource):
def __init__(__self__,
resource_name: str,
opts: Optional[pulumi.ResourceOptions] = None,
application_id: Optional[pulumi.Input[_builtins.str]] = None,
permanent: Optional[pulumi.Input[_builtins.bool]] = None,
regex: Optional[pulumi.Input[_builtins.str]] = None,
replacement: Optional[pulumi.Input[_builtins.str]] = None,
application_id: pulumi.Input[Optional[_builtins.str]] = None,
permanent: pulumi.Input[Optional[_builtins.bool]] = None,
regex: pulumi.Input[Optional[_builtins.str]] = None,
replacement: pulumi.Input[Optional[_builtins.str]] = None,
__props__=None):
"""
Create a Redirect resource with the given unique name, props, and options.
A Traefik redirect rule attached to an application.
:param str resource_name: The name of the resource.
:param pulumi.ResourceOptions opts: Options for the resource.
@@ -203,7 +204,8 @@ class Redirect(pulumi.CustomResource):
args: RedirectArgs,
opts: Optional[pulumi.ResourceOptions] = None):
"""
Create a Redirect resource with the given unique name, props, and options.
A Traefik redirect rule attached to an application.
:param str resource_name: The name of the resource.
:param RedirectArgs args: The arguments to use to populate this resource's properties.
@@ -220,10 +222,10 @@ class Redirect(pulumi.CustomResource):
def _internal_init(__self__,
resource_name: str,
opts: Optional[pulumi.ResourceOptions] = None,
application_id: Optional[pulumi.Input[_builtins.str]] = None,
permanent: Optional[pulumi.Input[_builtins.bool]] = None,
regex: Optional[pulumi.Input[_builtins.str]] = None,
replacement: Optional[pulumi.Input[_builtins.str]] = None,
application_id: pulumi.Input[Optional[_builtins.str]] = None,
permanent: pulumi.Input[Optional[_builtins.bool]] = None,
regex: pulumi.Input[Optional[_builtins.str]] = None,
replacement: pulumi.Input[Optional[_builtins.str]] = None,
__props__=None):
opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
if not isinstance(opts, pulumi.ResourceOptions):
@@ -254,11 +256,11 @@ class Redirect(pulumi.CustomResource):
def get(resource_name: str,
id: pulumi.Input[str],
opts: Optional[pulumi.ResourceOptions] = None,
application_id: Optional[pulumi.Input[_builtins.str]] = None,
created_at: Optional[pulumi.Input[_builtins.str]] = None,
permanent: Optional[pulumi.Input[_builtins.bool]] = None,
regex: Optional[pulumi.Input[_builtins.str]] = None,
replacement: Optional[pulumi.Input[_builtins.str]] = None) -> 'Redirect':
application_id: pulumi.Input[Optional[_builtins.str]] = None,
created_at: pulumi.Input[Optional[_builtins.str]] = None,
permanent: pulumi.Input[Optional[_builtins.bool]] = None,
regex: pulumi.Input[Optional[_builtins.str]] = None,
replacement: pulumi.Input[Optional[_builtins.str]] = None) -> 'Redirect':
"""
Get an existing Redirect resource's state with the given name, id, and optional extra
properties used to qualify the lookup.
+272 -262
View File
File diff suppressed because it is too large Load Diff
+59 -57
View File
@@ -23,9 +23,9 @@ class RegistryArgs:
registry_name: pulumi.Input[_builtins.str],
registry_url: pulumi.Input[_builtins.str],
username: pulumi.Input[_builtins.str],
image_prefix: Optional[pulumi.Input[_builtins.str]] = None,
registry_type: Optional[pulumi.Input[_builtins.str]] = None,
server_id: Optional[pulumi.Input[_builtins.str]] = None):
image_prefix: pulumi.Input[Optional[_builtins.str]] = None,
registry_type: pulumi.Input[Optional[_builtins.str]] = None,
server_id: pulumi.Input[Optional[_builtins.str]] = None):
"""
The set of arguments for constructing a Registry resource.
@@ -98,52 +98,52 @@ class RegistryArgs:
@_builtins.property
@pulumi.getter(name="imagePrefix")
def image_prefix(self) -> Optional[pulumi.Input[_builtins.str]]:
def image_prefix(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Prefix prepended to pushed image names, for example an organization or namespace.
"""
return pulumi.get(self, "image_prefix")
@image_prefix.setter
def image_prefix(self, value: Optional[pulumi.Input[_builtins.str]]):
def image_prefix(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "image_prefix", value)
@_builtins.property
@pulumi.getter(name="registryType")
def registry_type(self) -> Optional[pulumi.Input[_builtins.str]]:
def registry_type(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Registry kind. Dokploy currently accepts only `cloud`. Valid values: `cloud`. Defaults to `cloud`.
"""
return pulumi.get(self, "registry_type")
@registry_type.setter
def registry_type(self, value: Optional[pulumi.Input[_builtins.str]]):
def registry_type(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "registry_type", value)
@_builtins.property
@pulumi.getter(name="serverId")
def server_id(self) -> Optional[pulumi.Input[_builtins.str]]:
def server_id(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Server this registry is scoped to.
"""
return pulumi.get(self, "server_id")
@server_id.setter
def server_id(self, value: Optional[pulumi.Input[_builtins.str]]):
def server_id(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "server_id", value)
@pulumi.input_type
class _RegistryState:
def __init__(__self__, *,
created_at: Optional[pulumi.Input[_builtins.str]] = None,
image_prefix: Optional[pulumi.Input[_builtins.str]] = None,
password: Optional[pulumi.Input[_builtins.str]] = None,
registry_name: Optional[pulumi.Input[_builtins.str]] = None,
registry_type: Optional[pulumi.Input[_builtins.str]] = None,
registry_url: Optional[pulumi.Input[_builtins.str]] = None,
server_id: Optional[pulumi.Input[_builtins.str]] = None,
username: Optional[pulumi.Input[_builtins.str]] = None):
created_at: pulumi.Input[Optional[_builtins.str]] = None,
image_prefix: pulumi.Input[Optional[_builtins.str]] = None,
password: pulumi.Input[Optional[_builtins.str]] = None,
registry_name: pulumi.Input[Optional[_builtins.str]] = None,
registry_type: pulumi.Input[Optional[_builtins.str]] = None,
registry_url: pulumi.Input[Optional[_builtins.str]] = None,
server_id: pulumi.Input[Optional[_builtins.str]] = None,
username: pulumi.Input[Optional[_builtins.str]] = None):
"""
Input properties used for looking up and filtering Registry resources.
@@ -175,98 +175,98 @@ class _RegistryState:
@_builtins.property
@pulumi.getter(name="createdAt")
def created_at(self) -> Optional[pulumi.Input[_builtins.str]]:
def created_at(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
RFC 3339 timestamp of when the registry was created.
"""
return pulumi.get(self, "created_at")
@created_at.setter
def created_at(self, value: Optional[pulumi.Input[_builtins.str]]):
def created_at(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "created_at", value)
@_builtins.property
@pulumi.getter(name="imagePrefix")
def image_prefix(self) -> Optional[pulumi.Input[_builtins.str]]:
def image_prefix(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Prefix prepended to pushed image names, for example an organization or namespace.
"""
return pulumi.get(self, "image_prefix")
@image_prefix.setter
def image_prefix(self, value: Optional[pulumi.Input[_builtins.str]]):
def image_prefix(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "image_prefix", value)
@_builtins.property
@pulumi.getter
def password(self) -> Optional[pulumi.Input[_builtins.str]]:
def password(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Password or access token used to authenticate.
"""
return pulumi.get(self, "password")
@password.setter
def password(self, value: Optional[pulumi.Input[_builtins.str]]):
def password(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "password", value)
@_builtins.property
@pulumi.getter(name="registryName")
def registry_name(self) -> Optional[pulumi.Input[_builtins.str]]:
def registry_name(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Display name of the registry.
"""
return pulumi.get(self, "registry_name")
@registry_name.setter
def registry_name(self, value: Optional[pulumi.Input[_builtins.str]]):
def registry_name(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "registry_name", value)
@_builtins.property
@pulumi.getter(name="registryType")
def registry_type(self) -> Optional[pulumi.Input[_builtins.str]]:
def registry_type(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Registry kind. Dokploy currently accepts only `cloud`. Valid values: `cloud`. Defaults to `cloud`.
"""
return pulumi.get(self, "registry_type")
@registry_type.setter
def registry_type(self, value: Optional[pulumi.Input[_builtins.str]]):
def registry_type(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "registry_type", value)
@_builtins.property
@pulumi.getter(name="registryUrl")
def registry_url(self) -> Optional[pulumi.Input[_builtins.str]]:
def registry_url(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Registry hostname, for example `ghcr.io`.
"""
return pulumi.get(self, "registry_url")
@registry_url.setter
def registry_url(self, value: Optional[pulumi.Input[_builtins.str]]):
def registry_url(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "registry_url", value)
@_builtins.property
@pulumi.getter(name="serverId")
def server_id(self) -> Optional[pulumi.Input[_builtins.str]]:
def server_id(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Server this registry is scoped to.
"""
return pulumi.get(self, "server_id")
@server_id.setter
def server_id(self, value: Optional[pulumi.Input[_builtins.str]]):
def server_id(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "server_id", value)
@_builtins.property
@pulumi.getter
def username(self) -> Optional[pulumi.Input[_builtins.str]]:
def username(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Username used to authenticate to the registry.
"""
return pulumi.get(self, "username")
@username.setter
def username(self, value: Optional[pulumi.Input[_builtins.str]]):
def username(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "username", value)
@@ -276,16 +276,17 @@ class Registry(pulumi.CustomResource):
def __init__(__self__,
resource_name: str,
opts: Optional[pulumi.ResourceOptions] = None,
image_prefix: Optional[pulumi.Input[_builtins.str]] = None,
password: Optional[pulumi.Input[_builtins.str]] = None,
registry_name: Optional[pulumi.Input[_builtins.str]] = None,
registry_type: Optional[pulumi.Input[_builtins.str]] = None,
registry_url: Optional[pulumi.Input[_builtins.str]] = None,
server_id: Optional[pulumi.Input[_builtins.str]] = None,
username: Optional[pulumi.Input[_builtins.str]] = None,
image_prefix: pulumi.Input[Optional[_builtins.str]] = None,
password: pulumi.Input[Optional[_builtins.str]] = None,
registry_name: pulumi.Input[Optional[_builtins.str]] = None,
registry_type: pulumi.Input[Optional[_builtins.str]] = None,
registry_url: pulumi.Input[Optional[_builtins.str]] = None,
server_id: pulumi.Input[Optional[_builtins.str]] = None,
username: pulumi.Input[Optional[_builtins.str]] = None,
__props__=None):
"""
Create a Registry resource with the given unique name, props, and options.
A container registry that Dokploy pushes built images to and pulls them from.
:param str resource_name: The name of the resource.
:param pulumi.ResourceOptions opts: Options for the resource.
@@ -304,7 +305,8 @@ class Registry(pulumi.CustomResource):
args: RegistryArgs,
opts: Optional[pulumi.ResourceOptions] = None):
"""
Create a Registry resource with the given unique name, props, and options.
A container registry that Dokploy pushes built images to and pulls them from.
:param str resource_name: The name of the resource.
:param RegistryArgs args: The arguments to use to populate this resource's properties.
@@ -321,13 +323,13 @@ class Registry(pulumi.CustomResource):
def _internal_init(__self__,
resource_name: str,
opts: Optional[pulumi.ResourceOptions] = None,
image_prefix: Optional[pulumi.Input[_builtins.str]] = None,
password: Optional[pulumi.Input[_builtins.str]] = None,
registry_name: Optional[pulumi.Input[_builtins.str]] = None,
registry_type: Optional[pulumi.Input[_builtins.str]] = None,
registry_url: Optional[pulumi.Input[_builtins.str]] = None,
server_id: Optional[pulumi.Input[_builtins.str]] = None,
username: Optional[pulumi.Input[_builtins.str]] = None,
image_prefix: pulumi.Input[Optional[_builtins.str]] = None,
password: pulumi.Input[Optional[_builtins.str]] = None,
registry_name: pulumi.Input[Optional[_builtins.str]] = None,
registry_type: pulumi.Input[Optional[_builtins.str]] = None,
registry_url: pulumi.Input[Optional[_builtins.str]] = None,
server_id: pulumi.Input[Optional[_builtins.str]] = None,
username: pulumi.Input[Optional[_builtins.str]] = None,
__props__=None):
opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
if not isinstance(opts, pulumi.ResourceOptions):
@@ -365,14 +367,14 @@ class Registry(pulumi.CustomResource):
def get(resource_name: str,
id: pulumi.Input[str],
opts: Optional[pulumi.ResourceOptions] = None,
created_at: Optional[pulumi.Input[_builtins.str]] = None,
image_prefix: Optional[pulumi.Input[_builtins.str]] = None,
password: Optional[pulumi.Input[_builtins.str]] = None,
registry_name: Optional[pulumi.Input[_builtins.str]] = None,
registry_type: Optional[pulumi.Input[_builtins.str]] = None,
registry_url: Optional[pulumi.Input[_builtins.str]] = None,
server_id: Optional[pulumi.Input[_builtins.str]] = None,
username: Optional[pulumi.Input[_builtins.str]] = None) -> 'Registry':
created_at: pulumi.Input[Optional[_builtins.str]] = None,
image_prefix: pulumi.Input[Optional[_builtins.str]] = None,
password: pulumi.Input[Optional[_builtins.str]] = None,
registry_name: pulumi.Input[Optional[_builtins.str]] = None,
registry_type: pulumi.Input[Optional[_builtins.str]] = None,
registry_url: pulumi.Input[Optional[_builtins.str]] = None,
server_id: pulumi.Input[Optional[_builtins.str]] = None,
username: pulumi.Input[Optional[_builtins.str]] = None) -> 'Registry':
"""
Get an existing Registry resource's state with the given name, id, and optional extra
properties used to qualify the lookup.
+814
View File
@@ -0,0 +1,814 @@
# coding=utf-8
# *** WARNING: this file was generated by pulumi-language-python. ***
# *** Do not edit by hand unless you're certain you know what you are doing! ***
import builtins as _builtins
import warnings
import sys
import pulumi
import pulumi.runtime
from typing import Any, Mapping, Optional, Sequence, Union, overload
if sys.version_info >= (3, 11):
from typing import NotRequired, TypedDict, TypeAlias
else:
from typing_extensions import NotRequired, TypedDict, TypeAlias
from . import _utilities
__all__ = ['ScheduleArgs', 'Schedule']
@pulumi.input_type
class ScheduleArgs:
def __init__(__self__, *,
command: pulumi.Input[_builtins.str],
cron_expression: pulumi.Input[_builtins.str],
app_name: pulumi.Input[Optional[_builtins.str]] = None,
application_id: pulumi.Input[Optional[_builtins.str]] = None,
compose_id: pulumi.Input[Optional[_builtins.str]] = None,
description: pulumi.Input[Optional[_builtins.str]] = None,
enabled: pulumi.Input[Optional[_builtins.bool]] = None,
name: pulumi.Input[Optional[_builtins.str]] = None,
schedule_type: pulumi.Input[Optional[_builtins.str]] = None,
script: pulumi.Input[Optional[_builtins.str]] = None,
server_id: pulumi.Input[Optional[_builtins.str]] = None,
service_name: pulumi.Input[Optional[_builtins.str]] = None,
shell_type: pulumi.Input[Optional[_builtins.str]] = None,
timezone: pulumi.Input[Optional[_builtins.str]] = None):
"""
The set of arguments for constructing a Schedule resource.
:param pulumi.Input[_builtins.str] command: Command to run.
:param pulumi.Input[_builtins.str] cron_expression: Standard five-field cron expression, for example `0 3 * * *`.
:param pulumi.Input[_builtins.str] app_name: Docker service name the schedule targets. Derived by Dokploy when omitted.
:param pulumi.Input[_builtins.str] application_id: Application this schedule belongs to.
:param pulumi.Input[_builtins.str] compose_id: Compose stack this schedule belongs to.
:param pulumi.Input[_builtins.str] description: Free-form description.
:param pulumi.Input[_builtins.bool] enabled: Whether the schedule is active.
:param pulumi.Input[_builtins.str] name: Display name of the schedule.
:param pulumi.Input[_builtins.str] schedule_type: Where the command runs. Valid values: `application`, `compose`, `server`, `dokploy-server`. Defaults to `application`.
:param pulumi.Input[_builtins.str] script: Multi-line script to run instead of a single command.
:param pulumi.Input[_builtins.str] server_id: Server this schedule runs on.
:param pulumi.Input[_builtins.str] service_name: Service inside a Compose stack to run the command in.
:param pulumi.Input[_builtins.str] shell_type: Shell used to interpret the command. Valid values: `bash`, `sh`. Defaults to `bash`.
:param pulumi.Input[_builtins.str] timezone: IANA timezone the cron expression is evaluated in, for example `Europe/Berlin`.
"""
pulumi.set(__self__, "command", command)
pulumi.set(__self__, "cron_expression", cron_expression)
if app_name is not None:
pulumi.set(__self__, "app_name", app_name)
if application_id is not None:
pulumi.set(__self__, "application_id", application_id)
if compose_id is not None:
pulumi.set(__self__, "compose_id", compose_id)
if description is not None:
pulumi.set(__self__, "description", description)
if enabled is not None:
pulumi.set(__self__, "enabled", enabled)
if name is not None:
pulumi.set(__self__, "name", name)
if schedule_type is not None:
pulumi.set(__self__, "schedule_type", schedule_type)
if script is not None:
pulumi.set(__self__, "script", script)
if server_id is not None:
pulumi.set(__self__, "server_id", server_id)
if service_name is not None:
pulumi.set(__self__, "service_name", service_name)
if shell_type is not None:
pulumi.set(__self__, "shell_type", shell_type)
if timezone is not None:
pulumi.set(__self__, "timezone", timezone)
@_builtins.property
@pulumi.getter
def command(self) -> pulumi.Input[_builtins.str]:
"""
Command to run.
"""
return pulumi.get(self, "command")
@command.setter
def command(self, value: pulumi.Input[_builtins.str]):
pulumi.set(self, "command", value)
@_builtins.property
@pulumi.getter(name="cronExpression")
def cron_expression(self) -> pulumi.Input[_builtins.str]:
"""
Standard five-field cron expression, for example `0 3 * * *`.
"""
return pulumi.get(self, "cron_expression")
@cron_expression.setter
def cron_expression(self, value: pulumi.Input[_builtins.str]):
pulumi.set(self, "cron_expression", value)
@_builtins.property
@pulumi.getter(name="appName")
def app_name(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Docker service name the schedule targets. Derived by Dokploy when omitted.
"""
return pulumi.get(self, "app_name")
@app_name.setter
def app_name(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "app_name", value)
@_builtins.property
@pulumi.getter(name="applicationId")
def application_id(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Application this schedule belongs to.
"""
return pulumi.get(self, "application_id")
@application_id.setter
def application_id(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "application_id", value)
@_builtins.property
@pulumi.getter(name="composeId")
def compose_id(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Compose stack this schedule belongs to.
"""
return pulumi.get(self, "compose_id")
@compose_id.setter
def compose_id(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "compose_id", value)
@_builtins.property
@pulumi.getter
def description(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Free-form description.
"""
return pulumi.get(self, "description")
@description.setter
def description(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "description", value)
@_builtins.property
@pulumi.getter
def enabled(self) -> pulumi.Input[Optional[_builtins.bool]]:
"""
Whether the schedule is active.
"""
return pulumi.get(self, "enabled")
@enabled.setter
def enabled(self, value: pulumi.Input[Optional[_builtins.bool]]):
pulumi.set(self, "enabled", value)
@_builtins.property
@pulumi.getter
def name(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Display name of the schedule.
"""
return pulumi.get(self, "name")
@name.setter
def name(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "name", value)
@_builtins.property
@pulumi.getter(name="scheduleType")
def schedule_type(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Where the command runs. Valid values: `application`, `compose`, `server`, `dokploy-server`. Defaults to `application`.
"""
return pulumi.get(self, "schedule_type")
@schedule_type.setter
def schedule_type(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "schedule_type", value)
@_builtins.property
@pulumi.getter
def script(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Multi-line script to run instead of a single command.
"""
return pulumi.get(self, "script")
@script.setter
def script(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "script", value)
@_builtins.property
@pulumi.getter(name="serverId")
def server_id(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Server this schedule runs on.
"""
return pulumi.get(self, "server_id")
@server_id.setter
def server_id(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "server_id", value)
@_builtins.property
@pulumi.getter(name="serviceName")
def service_name(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Service inside a Compose stack to run the command in.
"""
return pulumi.get(self, "service_name")
@service_name.setter
def service_name(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "service_name", value)
@_builtins.property
@pulumi.getter(name="shellType")
def shell_type(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Shell used to interpret the command. Valid values: `bash`, `sh`. Defaults to `bash`.
"""
return pulumi.get(self, "shell_type")
@shell_type.setter
def shell_type(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "shell_type", value)
@_builtins.property
@pulumi.getter
def timezone(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
IANA timezone the cron expression is evaluated in, for example `Europe/Berlin`.
"""
return pulumi.get(self, "timezone")
@timezone.setter
def timezone(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "timezone", value)
@pulumi.input_type
class _ScheduleState:
def __init__(__self__, *,
app_name: pulumi.Input[Optional[_builtins.str]] = None,
application_id: pulumi.Input[Optional[_builtins.str]] = None,
command: pulumi.Input[Optional[_builtins.str]] = None,
compose_id: pulumi.Input[Optional[_builtins.str]] = None,
created_at: pulumi.Input[Optional[_builtins.str]] = None,
cron_expression: pulumi.Input[Optional[_builtins.str]] = None,
description: pulumi.Input[Optional[_builtins.str]] = None,
enabled: pulumi.Input[Optional[_builtins.bool]] = None,
name: pulumi.Input[Optional[_builtins.str]] = None,
schedule_type: pulumi.Input[Optional[_builtins.str]] = None,
script: pulumi.Input[Optional[_builtins.str]] = None,
server_id: pulumi.Input[Optional[_builtins.str]] = None,
service_name: pulumi.Input[Optional[_builtins.str]] = None,
shell_type: pulumi.Input[Optional[_builtins.str]] = None,
timezone: pulumi.Input[Optional[_builtins.str]] = None):
"""
Input properties used for looking up and filtering Schedule resources.
:param pulumi.Input[_builtins.str] app_name: Docker service name the schedule targets. Derived by Dokploy when omitted.
:param pulumi.Input[_builtins.str] application_id: Application this schedule belongs to.
:param pulumi.Input[_builtins.str] command: Command to run.
:param pulumi.Input[_builtins.str] compose_id: Compose stack this schedule belongs to.
:param pulumi.Input[_builtins.str] created_at: RFC 3339 timestamp of when the schedule was created.
:param pulumi.Input[_builtins.str] cron_expression: Standard five-field cron expression, for example `0 3 * * *`.
:param pulumi.Input[_builtins.str] description: Free-form description.
:param pulumi.Input[_builtins.bool] enabled: Whether the schedule is active.
:param pulumi.Input[_builtins.str] name: Display name of the schedule.
:param pulumi.Input[_builtins.str] schedule_type: Where the command runs. Valid values: `application`, `compose`, `server`, `dokploy-server`. Defaults to `application`.
:param pulumi.Input[_builtins.str] script: Multi-line script to run instead of a single command.
:param pulumi.Input[_builtins.str] server_id: Server this schedule runs on.
:param pulumi.Input[_builtins.str] service_name: Service inside a Compose stack to run the command in.
:param pulumi.Input[_builtins.str] shell_type: Shell used to interpret the command. Valid values: `bash`, `sh`. Defaults to `bash`.
:param pulumi.Input[_builtins.str] timezone: IANA timezone the cron expression is evaluated in, for example `Europe/Berlin`.
"""
if app_name is not None:
pulumi.set(__self__, "app_name", app_name)
if application_id is not None:
pulumi.set(__self__, "application_id", application_id)
if command is not None:
pulumi.set(__self__, "command", command)
if compose_id is not None:
pulumi.set(__self__, "compose_id", compose_id)
if created_at is not None:
pulumi.set(__self__, "created_at", created_at)
if cron_expression is not None:
pulumi.set(__self__, "cron_expression", cron_expression)
if description is not None:
pulumi.set(__self__, "description", description)
if enabled is not None:
pulumi.set(__self__, "enabled", enabled)
if name is not None:
pulumi.set(__self__, "name", name)
if schedule_type is not None:
pulumi.set(__self__, "schedule_type", schedule_type)
if script is not None:
pulumi.set(__self__, "script", script)
if server_id is not None:
pulumi.set(__self__, "server_id", server_id)
if service_name is not None:
pulumi.set(__self__, "service_name", service_name)
if shell_type is not None:
pulumi.set(__self__, "shell_type", shell_type)
if timezone is not None:
pulumi.set(__self__, "timezone", timezone)
@_builtins.property
@pulumi.getter(name="appName")
def app_name(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Docker service name the schedule targets. Derived by Dokploy when omitted.
"""
return pulumi.get(self, "app_name")
@app_name.setter
def app_name(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "app_name", value)
@_builtins.property
@pulumi.getter(name="applicationId")
def application_id(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Application this schedule belongs to.
"""
return pulumi.get(self, "application_id")
@application_id.setter
def application_id(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "application_id", value)
@_builtins.property
@pulumi.getter
def command(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Command to run.
"""
return pulumi.get(self, "command")
@command.setter
def command(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "command", value)
@_builtins.property
@pulumi.getter(name="composeId")
def compose_id(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Compose stack this schedule belongs to.
"""
return pulumi.get(self, "compose_id")
@compose_id.setter
def compose_id(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "compose_id", value)
@_builtins.property
@pulumi.getter(name="createdAt")
def created_at(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
RFC 3339 timestamp of when the schedule was created.
"""
return pulumi.get(self, "created_at")
@created_at.setter
def created_at(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "created_at", value)
@_builtins.property
@pulumi.getter(name="cronExpression")
def cron_expression(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Standard five-field cron expression, for example `0 3 * * *`.
"""
return pulumi.get(self, "cron_expression")
@cron_expression.setter
def cron_expression(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "cron_expression", value)
@_builtins.property
@pulumi.getter
def description(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Free-form description.
"""
return pulumi.get(self, "description")
@description.setter
def description(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "description", value)
@_builtins.property
@pulumi.getter
def enabled(self) -> pulumi.Input[Optional[_builtins.bool]]:
"""
Whether the schedule is active.
"""
return pulumi.get(self, "enabled")
@enabled.setter
def enabled(self, value: pulumi.Input[Optional[_builtins.bool]]):
pulumi.set(self, "enabled", value)
@_builtins.property
@pulumi.getter
def name(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Display name of the schedule.
"""
return pulumi.get(self, "name")
@name.setter
def name(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "name", value)
@_builtins.property
@pulumi.getter(name="scheduleType")
def schedule_type(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Where the command runs. Valid values: `application`, `compose`, `server`, `dokploy-server`. Defaults to `application`.
"""
return pulumi.get(self, "schedule_type")
@schedule_type.setter
def schedule_type(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "schedule_type", value)
@_builtins.property
@pulumi.getter
def script(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Multi-line script to run instead of a single command.
"""
return pulumi.get(self, "script")
@script.setter
def script(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "script", value)
@_builtins.property
@pulumi.getter(name="serverId")
def server_id(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Server this schedule runs on.
"""
return pulumi.get(self, "server_id")
@server_id.setter
def server_id(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "server_id", value)
@_builtins.property
@pulumi.getter(name="serviceName")
def service_name(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Service inside a Compose stack to run the command in.
"""
return pulumi.get(self, "service_name")
@service_name.setter
def service_name(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "service_name", value)
@_builtins.property
@pulumi.getter(name="shellType")
def shell_type(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Shell used to interpret the command. Valid values: `bash`, `sh`. Defaults to `bash`.
"""
return pulumi.get(self, "shell_type")
@shell_type.setter
def shell_type(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "shell_type", value)
@_builtins.property
@pulumi.getter
def timezone(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
IANA timezone the cron expression is evaluated in, for example `Europe/Berlin`.
"""
return pulumi.get(self, "timezone")
@timezone.setter
def timezone(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "timezone", value)
@pulumi.type_token("dokploy:index/schedule:Schedule")
class Schedule(pulumi.CustomResource):
@overload
def __init__(__self__,
resource_name: str,
opts: Optional[pulumi.ResourceOptions] = None,
app_name: pulumi.Input[Optional[_builtins.str]] = None,
application_id: pulumi.Input[Optional[_builtins.str]] = None,
command: pulumi.Input[Optional[_builtins.str]] = None,
compose_id: pulumi.Input[Optional[_builtins.str]] = None,
cron_expression: pulumi.Input[Optional[_builtins.str]] = None,
description: pulumi.Input[Optional[_builtins.str]] = None,
enabled: pulumi.Input[Optional[_builtins.bool]] = None,
name: pulumi.Input[Optional[_builtins.str]] = None,
schedule_type: pulumi.Input[Optional[_builtins.str]] = None,
script: pulumi.Input[Optional[_builtins.str]] = None,
server_id: pulumi.Input[Optional[_builtins.str]] = None,
service_name: pulumi.Input[Optional[_builtins.str]] = None,
shell_type: pulumi.Input[Optional[_builtins.str]] = None,
timezone: pulumi.Input[Optional[_builtins.str]] = None,
__props__=None):
"""
A cron job Dokploy runs on a schedule.
`schedule_type` selects where the command runs:
* `application` — inside a running application container; set `application_id`.
* `compose` — inside one service of a Compose stack; set `compose_id` and `service_name`.
* `server` — on a remote server; set `server_id`.
* `dokploy-server` — on the Dokploy host itself.
> A schedule targeting an application runs inside its container, so the container has to be running when the cron fires.
:param str resource_name: The name of the resource.
:param pulumi.ResourceOptions opts: Options for the resource.
:param pulumi.Input[_builtins.str] app_name: Docker service name the schedule targets. Derived by Dokploy when omitted.
:param pulumi.Input[_builtins.str] application_id: Application this schedule belongs to.
:param pulumi.Input[_builtins.str] command: Command to run.
:param pulumi.Input[_builtins.str] compose_id: Compose stack this schedule belongs to.
:param pulumi.Input[_builtins.str] cron_expression: Standard five-field cron expression, for example `0 3 * * *`.
:param pulumi.Input[_builtins.str] description: Free-form description.
:param pulumi.Input[_builtins.bool] enabled: Whether the schedule is active.
:param pulumi.Input[_builtins.str] name: Display name of the schedule.
:param pulumi.Input[_builtins.str] schedule_type: Where the command runs. Valid values: `application`, `compose`, `server`, `dokploy-server`. Defaults to `application`.
:param pulumi.Input[_builtins.str] script: Multi-line script to run instead of a single command.
:param pulumi.Input[_builtins.str] server_id: Server this schedule runs on.
:param pulumi.Input[_builtins.str] service_name: Service inside a Compose stack to run the command in.
:param pulumi.Input[_builtins.str] shell_type: Shell used to interpret the command. Valid values: `bash`, `sh`. Defaults to `bash`.
:param pulumi.Input[_builtins.str] timezone: IANA timezone the cron expression is evaluated in, for example `Europe/Berlin`.
"""
...
@overload
def __init__(__self__,
resource_name: str,
args: ScheduleArgs,
opts: Optional[pulumi.ResourceOptions] = None):
"""
A cron job Dokploy runs on a schedule.
`schedule_type` selects where the command runs:
* `application` — inside a running application container; set `application_id`.
* `compose` — inside one service of a Compose stack; set `compose_id` and `service_name`.
* `server` — on a remote server; set `server_id`.
* `dokploy-server` — on the Dokploy host itself.
> A schedule targeting an application runs inside its container, so the container has to be running when the cron fires.
:param str resource_name: The name of the resource.
:param ScheduleArgs args: The arguments to use to populate this resource's properties.
:param pulumi.ResourceOptions opts: Options for the resource.
"""
...
def __init__(__self__, resource_name: str, *args, **kwargs):
resource_args, opts = _utilities.get_resource_args_opts(ScheduleArgs, pulumi.ResourceOptions, *args, **kwargs)
if resource_args is not None:
__self__._internal_init(resource_name, opts, **resource_args.__dict__)
else:
__self__._internal_init(resource_name, *args, **kwargs)
def _internal_init(__self__,
resource_name: str,
opts: Optional[pulumi.ResourceOptions] = None,
app_name: pulumi.Input[Optional[_builtins.str]] = None,
application_id: pulumi.Input[Optional[_builtins.str]] = None,
command: pulumi.Input[Optional[_builtins.str]] = None,
compose_id: pulumi.Input[Optional[_builtins.str]] = None,
cron_expression: pulumi.Input[Optional[_builtins.str]] = None,
description: pulumi.Input[Optional[_builtins.str]] = None,
enabled: pulumi.Input[Optional[_builtins.bool]] = None,
name: pulumi.Input[Optional[_builtins.str]] = None,
schedule_type: pulumi.Input[Optional[_builtins.str]] = None,
script: pulumi.Input[Optional[_builtins.str]] = None,
server_id: pulumi.Input[Optional[_builtins.str]] = None,
service_name: pulumi.Input[Optional[_builtins.str]] = None,
shell_type: pulumi.Input[Optional[_builtins.str]] = None,
timezone: pulumi.Input[Optional[_builtins.str]] = None,
__props__=None):
opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
if not isinstance(opts, pulumi.ResourceOptions):
raise TypeError('Expected resource options to be a ResourceOptions instance')
if opts.id is None:
if __props__ is not None:
raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
__props__ = ScheduleArgs.__new__(ScheduleArgs)
__props__.__dict__["app_name"] = app_name
__props__.__dict__["application_id"] = application_id
if command is None and not opts.urn:
raise TypeError("Missing required property 'command'")
__props__.__dict__["command"] = command
__props__.__dict__["compose_id"] = compose_id
if cron_expression is None and not opts.urn:
raise TypeError("Missing required property 'cron_expression'")
__props__.__dict__["cron_expression"] = cron_expression
__props__.__dict__["description"] = description
__props__.__dict__["enabled"] = enabled
__props__.__dict__["name"] = name
__props__.__dict__["schedule_type"] = schedule_type
__props__.__dict__["script"] = script
__props__.__dict__["server_id"] = server_id
__props__.__dict__["service_name"] = service_name
__props__.__dict__["shell_type"] = shell_type
__props__.__dict__["timezone"] = timezone
__props__.__dict__["created_at"] = None
super(Schedule, __self__).__init__(
'dokploy:index/schedule:Schedule',
resource_name,
__props__,
opts)
@staticmethod
def get(resource_name: str,
id: pulumi.Input[str],
opts: Optional[pulumi.ResourceOptions] = None,
app_name: pulumi.Input[Optional[_builtins.str]] = None,
application_id: pulumi.Input[Optional[_builtins.str]] = None,
command: pulumi.Input[Optional[_builtins.str]] = None,
compose_id: pulumi.Input[Optional[_builtins.str]] = None,
created_at: pulumi.Input[Optional[_builtins.str]] = None,
cron_expression: pulumi.Input[Optional[_builtins.str]] = None,
description: pulumi.Input[Optional[_builtins.str]] = None,
enabled: pulumi.Input[Optional[_builtins.bool]] = None,
name: pulumi.Input[Optional[_builtins.str]] = None,
schedule_type: pulumi.Input[Optional[_builtins.str]] = None,
script: pulumi.Input[Optional[_builtins.str]] = None,
server_id: pulumi.Input[Optional[_builtins.str]] = None,
service_name: pulumi.Input[Optional[_builtins.str]] = None,
shell_type: pulumi.Input[Optional[_builtins.str]] = None,
timezone: pulumi.Input[Optional[_builtins.str]] = None) -> 'Schedule':
"""
Get an existing Schedule resource's state with the given name, id, and optional extra
properties used to qualify the lookup.
:param str resource_name: The unique name of the resulting resource.
:param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
:param pulumi.ResourceOptions opts: Options for the resource.
:param pulumi.Input[_builtins.str] app_name: Docker service name the schedule targets. Derived by Dokploy when omitted.
:param pulumi.Input[_builtins.str] application_id: Application this schedule belongs to.
:param pulumi.Input[_builtins.str] command: Command to run.
:param pulumi.Input[_builtins.str] compose_id: Compose stack this schedule belongs to.
:param pulumi.Input[_builtins.str] created_at: RFC 3339 timestamp of when the schedule was created.
:param pulumi.Input[_builtins.str] cron_expression: Standard five-field cron expression, for example `0 3 * * *`.
:param pulumi.Input[_builtins.str] description: Free-form description.
:param pulumi.Input[_builtins.bool] enabled: Whether the schedule is active.
:param pulumi.Input[_builtins.str] name: Display name of the schedule.
:param pulumi.Input[_builtins.str] schedule_type: Where the command runs. Valid values: `application`, `compose`, `server`, `dokploy-server`. Defaults to `application`.
:param pulumi.Input[_builtins.str] script: Multi-line script to run instead of a single command.
:param pulumi.Input[_builtins.str] server_id: Server this schedule runs on.
:param pulumi.Input[_builtins.str] service_name: Service inside a Compose stack to run the command in.
:param pulumi.Input[_builtins.str] shell_type: Shell used to interpret the command. Valid values: `bash`, `sh`. Defaults to `bash`.
:param pulumi.Input[_builtins.str] timezone: IANA timezone the cron expression is evaluated in, for example `Europe/Berlin`.
"""
opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
__props__ = _ScheduleState.__new__(_ScheduleState)
__props__.__dict__["app_name"] = app_name
__props__.__dict__["application_id"] = application_id
__props__.__dict__["command"] = command
__props__.__dict__["compose_id"] = compose_id
__props__.__dict__["created_at"] = created_at
__props__.__dict__["cron_expression"] = cron_expression
__props__.__dict__["description"] = description
__props__.__dict__["enabled"] = enabled
__props__.__dict__["name"] = name
__props__.__dict__["schedule_type"] = schedule_type
__props__.__dict__["script"] = script
__props__.__dict__["server_id"] = server_id
__props__.__dict__["service_name"] = service_name
__props__.__dict__["shell_type"] = shell_type
__props__.__dict__["timezone"] = timezone
return Schedule(resource_name, opts=opts, __props__=__props__)
@_builtins.property
@pulumi.getter(name="appName")
def app_name(self) -> pulumi.Output[_builtins.str]:
"""
Docker service name the schedule targets. Derived by Dokploy when omitted.
"""
return pulumi.get(self, "app_name")
@_builtins.property
@pulumi.getter(name="applicationId")
def application_id(self) -> pulumi.Output[Optional[_builtins.str]]:
"""
Application this schedule belongs to.
"""
return pulumi.get(self, "application_id")
@_builtins.property
@pulumi.getter
def command(self) -> pulumi.Output[_builtins.str]:
"""
Command to run.
"""
return pulumi.get(self, "command")
@_builtins.property
@pulumi.getter(name="composeId")
def compose_id(self) -> pulumi.Output[Optional[_builtins.str]]:
"""
Compose stack this schedule belongs to.
"""
return pulumi.get(self, "compose_id")
@_builtins.property
@pulumi.getter(name="createdAt")
def created_at(self) -> pulumi.Output[_builtins.str]:
"""
RFC 3339 timestamp of when the schedule was created.
"""
return pulumi.get(self, "created_at")
@_builtins.property
@pulumi.getter(name="cronExpression")
def cron_expression(self) -> pulumi.Output[_builtins.str]:
"""
Standard five-field cron expression, for example `0 3 * * *`.
"""
return pulumi.get(self, "cron_expression")
@_builtins.property
@pulumi.getter
def description(self) -> pulumi.Output[Optional[_builtins.str]]:
"""
Free-form description.
"""
return pulumi.get(self, "description")
@_builtins.property
@pulumi.getter
def enabled(self) -> pulumi.Output[_builtins.bool]:
"""
Whether the schedule is active.
"""
return pulumi.get(self, "enabled")
@_builtins.property
@pulumi.getter
def name(self) -> pulumi.Output[_builtins.str]:
"""
Display name of the schedule.
"""
return pulumi.get(self, "name")
@_builtins.property
@pulumi.getter(name="scheduleType")
def schedule_type(self) -> pulumi.Output[_builtins.str]:
"""
Where the command runs. Valid values: `application`, `compose`, `server`, `dokploy-server`. Defaults to `application`.
"""
return pulumi.get(self, "schedule_type")
@_builtins.property
@pulumi.getter
def script(self) -> pulumi.Output[Optional[_builtins.str]]:
"""
Multi-line script to run instead of a single command.
"""
return pulumi.get(self, "script")
@_builtins.property
@pulumi.getter(name="serverId")
def server_id(self) -> pulumi.Output[Optional[_builtins.str]]:
"""
Server this schedule runs on.
"""
return pulumi.get(self, "server_id")
@_builtins.property
@pulumi.getter(name="serviceName")
def service_name(self) -> pulumi.Output[Optional[_builtins.str]]:
"""
Service inside a Compose stack to run the command in.
"""
return pulumi.get(self, "service_name")
@_builtins.property
@pulumi.getter(name="shellType")
def shell_type(self) -> pulumi.Output[_builtins.str]:
"""
Shell used to interpret the command. Valid values: `bash`, `sh`. Defaults to `bash`.
"""
return pulumi.get(self, "shell_type")
@_builtins.property
@pulumi.getter
def timezone(self) -> pulumi.Output[Optional[_builtins.str]]:
"""
IANA timezone the cron expression is evaluated in, for example `Europe/Berlin`.
"""
return pulumi.get(self, "timezone")
+30 -24
View File
@@ -73,10 +73,10 @@ class SecurityArgs:
@pulumi.input_type
class _SecurityState:
def __init__(__self__, *,
application_id: Optional[pulumi.Input[_builtins.str]] = None,
created_at: Optional[pulumi.Input[_builtins.str]] = None,
password: Optional[pulumi.Input[_builtins.str]] = None,
username: Optional[pulumi.Input[_builtins.str]] = None):
application_id: pulumi.Input[Optional[_builtins.str]] = None,
created_at: pulumi.Input[Optional[_builtins.str]] = None,
password: pulumi.Input[Optional[_builtins.str]] = None,
username: pulumi.Input[Optional[_builtins.str]] = None):
"""
Input properties used for looking up and filtering Security resources.
@@ -96,50 +96,50 @@ class _SecurityState:
@_builtins.property
@pulumi.getter(name="applicationId")
def application_id(self) -> Optional[pulumi.Input[_builtins.str]]:
def application_id(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Application these credentials protect.
"""
return pulumi.get(self, "application_id")
@application_id.setter
def application_id(self, value: Optional[pulumi.Input[_builtins.str]]):
def application_id(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "application_id", value)
@_builtins.property
@pulumi.getter(name="createdAt")
def created_at(self) -> Optional[pulumi.Input[_builtins.str]]:
def created_at(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
RFC 3339 timestamp of when the credentials were created.
"""
return pulumi.get(self, "created_at")
@created_at.setter
def created_at(self, value: Optional[pulumi.Input[_builtins.str]]):
def created_at(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "created_at", value)
@_builtins.property
@pulumi.getter
def password(self) -> Optional[pulumi.Input[_builtins.str]]:
def password(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Basic auth password.
"""
return pulumi.get(self, "password")
@password.setter
def password(self, value: Optional[pulumi.Input[_builtins.str]]):
def password(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "password", value)
@_builtins.property
@pulumi.getter
def username(self) -> Optional[pulumi.Input[_builtins.str]]:
def username(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Basic auth username.
"""
return pulumi.get(self, "username")
@username.setter
def username(self, value: Optional[pulumi.Input[_builtins.str]]):
def username(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "username", value)
@@ -149,12 +149,15 @@ class Security(pulumi.CustomResource):
def __init__(__self__,
resource_name: str,
opts: Optional[pulumi.ResourceOptions] = None,
application_id: Optional[pulumi.Input[_builtins.str]] = None,
password: Optional[pulumi.Input[_builtins.str]] = None,
username: Optional[pulumi.Input[_builtins.str]] = None,
application_id: pulumi.Input[Optional[_builtins.str]] = None,
password: pulumi.Input[Optional[_builtins.str]] = None,
username: pulumi.Input[Optional[_builtins.str]] = None,
__props__=None):
"""
Create a Security resource with the given unique name, props, and options.
HTTP basic authentication credentials protecting an application's domains.
> Dokploy stores the password hashed and does not return it. The value in Terraform state is the one you configured.
:param str resource_name: The name of the resource.
:param pulumi.ResourceOptions opts: Options for the resource.
@@ -169,7 +172,10 @@ class Security(pulumi.CustomResource):
args: SecurityArgs,
opts: Optional[pulumi.ResourceOptions] = None):
"""
Create a Security resource with the given unique name, props, and options.
HTTP basic authentication credentials protecting an application's domains.
> Dokploy stores the password hashed and does not return it. The value in Terraform state is the one you configured.
:param str resource_name: The name of the resource.
:param SecurityArgs args: The arguments to use to populate this resource's properties.
@@ -186,9 +192,9 @@ class Security(pulumi.CustomResource):
def _internal_init(__self__,
resource_name: str,
opts: Optional[pulumi.ResourceOptions] = None,
application_id: Optional[pulumi.Input[_builtins.str]] = None,
password: Optional[pulumi.Input[_builtins.str]] = None,
username: Optional[pulumi.Input[_builtins.str]] = None,
application_id: pulumi.Input[Optional[_builtins.str]] = None,
password: pulumi.Input[Optional[_builtins.str]] = None,
username: pulumi.Input[Optional[_builtins.str]] = None,
__props__=None):
opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
if not isinstance(opts, pulumi.ResourceOptions):
@@ -220,10 +226,10 @@ class Security(pulumi.CustomResource):
def get(resource_name: str,
id: pulumi.Input[str],
opts: Optional[pulumi.ResourceOptions] = None,
application_id: Optional[pulumi.Input[_builtins.str]] = None,
created_at: Optional[pulumi.Input[_builtins.str]] = None,
password: Optional[pulumi.Input[_builtins.str]] = None,
username: Optional[pulumi.Input[_builtins.str]] = None) -> 'Security':
application_id: pulumi.Input[Optional[_builtins.str]] = None,
created_at: pulumi.Input[Optional[_builtins.str]] = None,
password: pulumi.Input[Optional[_builtins.str]] = None,
username: pulumi.Input[Optional[_builtins.str]] = None) -> 'Security':
"""
Get an existing Security resource's state with the given name, id, and optional extra
properties used to qualify the lookup.
+50 -40
View File
@@ -21,8 +21,8 @@ class SshKeyArgs:
def __init__(__self__, *,
private_key: pulumi.Input[_builtins.str],
public_key: pulumi.Input[_builtins.str],
description: Optional[pulumi.Input[_builtins.str]] = None,
name: Optional[pulumi.Input[_builtins.str]] = None):
description: pulumi.Input[Optional[_builtins.str]] = None,
name: pulumi.Input[Optional[_builtins.str]] = None):
"""
The set of arguments for constructing a SshKey resource.
@@ -64,38 +64,38 @@ class SshKeyArgs:
@_builtins.property
@pulumi.getter
def description(self) -> Optional[pulumi.Input[_builtins.str]]:
def description(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Free-form description.
"""
return pulumi.get(self, "description")
@description.setter
def description(self, value: Optional[pulumi.Input[_builtins.str]]):
def description(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "description", value)
@_builtins.property
@pulumi.getter
def name(self) -> Optional[pulumi.Input[_builtins.str]]:
def name(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Display name of the key pair.
"""
return pulumi.get(self, "name")
@name.setter
def name(self, value: Optional[pulumi.Input[_builtins.str]]):
def name(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "name", value)
@pulumi.input_type
class _SshKeyState:
def __init__(__self__, *,
created_at: Optional[pulumi.Input[_builtins.str]] = None,
description: Optional[pulumi.Input[_builtins.str]] = None,
last_used_at: Optional[pulumi.Input[_builtins.str]] = None,
name: Optional[pulumi.Input[_builtins.str]] = None,
private_key: Optional[pulumi.Input[_builtins.str]] = None,
public_key: Optional[pulumi.Input[_builtins.str]] = None):
created_at: pulumi.Input[Optional[_builtins.str]] = None,
description: pulumi.Input[Optional[_builtins.str]] = None,
last_used_at: pulumi.Input[Optional[_builtins.str]] = None,
name: pulumi.Input[Optional[_builtins.str]] = None,
private_key: pulumi.Input[Optional[_builtins.str]] = None,
public_key: pulumi.Input[Optional[_builtins.str]] = None):
"""
Input properties used for looking up and filtering SshKey resources.
@@ -121,74 +121,74 @@ class _SshKeyState:
@_builtins.property
@pulumi.getter(name="createdAt")
def created_at(self) -> Optional[pulumi.Input[_builtins.str]]:
def created_at(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
RFC 3339 timestamp of when the key was created.
"""
return pulumi.get(self, "created_at")
@created_at.setter
def created_at(self, value: Optional[pulumi.Input[_builtins.str]]):
def created_at(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "created_at", value)
@_builtins.property
@pulumi.getter
def description(self) -> Optional[pulumi.Input[_builtins.str]]:
def description(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Free-form description.
"""
return pulumi.get(self, "description")
@description.setter
def description(self, value: Optional[pulumi.Input[_builtins.str]]):
def description(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "description", value)
@_builtins.property
@pulumi.getter(name="lastUsedAt")
def last_used_at(self) -> Optional[pulumi.Input[_builtins.str]]:
def last_used_at(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
RFC 3339 timestamp of when the key was last used, if ever.
"""
return pulumi.get(self, "last_used_at")
@last_used_at.setter
def last_used_at(self, value: Optional[pulumi.Input[_builtins.str]]):
def last_used_at(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "last_used_at", value)
@_builtins.property
@pulumi.getter
def name(self) -> Optional[pulumi.Input[_builtins.str]]:
def name(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Display name of the key pair.
"""
return pulumi.get(self, "name")
@name.setter
def name(self, value: Optional[pulumi.Input[_builtins.str]]):
def name(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "name", value)
@_builtins.property
@pulumi.getter(name="privateKey")
def private_key(self) -> Optional[pulumi.Input[_builtins.str]]:
def private_key(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
PEM-encoded private key.
"""
return pulumi.get(self, "private_key")
@private_key.setter
def private_key(self, value: Optional[pulumi.Input[_builtins.str]]):
def private_key(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "private_key", value)
@_builtins.property
@pulumi.getter(name="publicKey")
def public_key(self) -> Optional[pulumi.Input[_builtins.str]]:
def public_key(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
OpenSSH-formatted public key.
"""
return pulumi.get(self, "public_key")
@public_key.setter
def public_key(self, value: Optional[pulumi.Input[_builtins.str]]):
def public_key(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "public_key", value)
@@ -198,13 +198,18 @@ class SshKey(pulumi.CustomResource):
def __init__(__self__,
resource_name: str,
opts: Optional[pulumi.ResourceOptions] = None,
description: Optional[pulumi.Input[_builtins.str]] = None,
name: Optional[pulumi.Input[_builtins.str]] = None,
private_key: Optional[pulumi.Input[_builtins.str]] = None,
public_key: Optional[pulumi.Input[_builtins.str]] = None,
description: pulumi.Input[Optional[_builtins.str]] = None,
name: pulumi.Input[Optional[_builtins.str]] = None,
private_key: pulumi.Input[Optional[_builtins.str]] = None,
public_key: pulumi.Input[Optional[_builtins.str]] = None,
__props__=None):
"""
Create a SshKey resource with the given unique name, props, and options.
An SSH key pair Dokploy uses to clone private Git repositories and to reach remote servers.
> The private key is stored in Terraform state. Use a state backend with encryption at rest.
> Dokploy's update endpoint only accepts `name` and `description`. Changing either key forces a new resource.
:param str resource_name: The name of the resource.
:param pulumi.ResourceOptions opts: Options for the resource.
@@ -220,7 +225,12 @@ class SshKey(pulumi.CustomResource):
args: SshKeyArgs,
opts: Optional[pulumi.ResourceOptions] = None):
"""
Create a SshKey resource with the given unique name, props, and options.
An SSH key pair Dokploy uses to clone private Git repositories and to reach remote servers.
> The private key is stored in Terraform state. Use a state backend with encryption at rest.
> Dokploy's update endpoint only accepts `name` and `description`. Changing either key forces a new resource.
:param str resource_name: The name of the resource.
:param SshKeyArgs args: The arguments to use to populate this resource's properties.
@@ -237,10 +247,10 @@ class SshKey(pulumi.CustomResource):
def _internal_init(__self__,
resource_name: str,
opts: Optional[pulumi.ResourceOptions] = None,
description: Optional[pulumi.Input[_builtins.str]] = None,
name: Optional[pulumi.Input[_builtins.str]] = None,
private_key: Optional[pulumi.Input[_builtins.str]] = None,
public_key: Optional[pulumi.Input[_builtins.str]] = None,
description: pulumi.Input[Optional[_builtins.str]] = None,
name: pulumi.Input[Optional[_builtins.str]] = None,
private_key: pulumi.Input[Optional[_builtins.str]] = None,
public_key: pulumi.Input[Optional[_builtins.str]] = None,
__props__=None):
opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
if not isinstance(opts, pulumi.ResourceOptions):
@@ -272,12 +282,12 @@ class SshKey(pulumi.CustomResource):
def get(resource_name: str,
id: pulumi.Input[str],
opts: Optional[pulumi.ResourceOptions] = None,
created_at: Optional[pulumi.Input[_builtins.str]] = None,
description: Optional[pulumi.Input[_builtins.str]] = None,
last_used_at: Optional[pulumi.Input[_builtins.str]] = None,
name: Optional[pulumi.Input[_builtins.str]] = None,
private_key: Optional[pulumi.Input[_builtins.str]] = None,
public_key: Optional[pulumi.Input[_builtins.str]] = None) -> 'SshKey':
created_at: pulumi.Input[Optional[_builtins.str]] = None,
description: pulumi.Input[Optional[_builtins.str]] = None,
last_used_at: pulumi.Input[Optional[_builtins.str]] = None,
name: pulumi.Input[Optional[_builtins.str]] = None,
private_key: pulumi.Input[Optional[_builtins.str]] = None,
public_key: pulumi.Input[Optional[_builtins.str]] = None) -> 'SshKey':
"""
Get an existing SshKey resource's state with the given name, id, and optional extra
properties used to qualify the lookup.
+345
View File
@@ -0,0 +1,345 @@
# coding=utf-8
# *** WARNING: this file was generated by pulumi-language-python. ***
# *** Do not edit by hand unless you're certain you know what you are doing! ***
import builtins as _builtins
import warnings
import sys
import pulumi
import pulumi.runtime
from typing import Any, Mapping, Optional, Sequence, Union, overload
if sys.version_info >= (3, 11):
from typing import NotRequired, TypedDict, TypeAlias
else:
from typing_extensions import NotRequired, TypedDict, TypeAlias
from . import _utilities
__all__ = ['VaultProviderArgs', 'VaultProvider']
@pulumi.input_type
class VaultProviderArgs:
def __init__(__self__, *,
assignments: pulumi.Input[_builtins.str],
config: pulumi.Input[_builtins.str],
name: pulumi.Input[Optional[_builtins.str]] = None):
"""
The set of arguments for constructing a VaultProvider resource.
:param pulumi.Input[_builtins.str] assignments: JSON array scoping which projects or environments may resolve secrets from this provider. Pass `jsonencode([])` to leave it unscoped.
:param pulumi.Input[_builtins.str] config: Provider credentials as a JSON object, including the `providerType` discriminator.
:param pulumi.Input[_builtins.str] name: Name of the connection, unique within the organization.
"""
pulumi.set(__self__, "assignments", assignments)
pulumi.set(__self__, "config", config)
if name is not None:
pulumi.set(__self__, "name", name)
@_builtins.property
@pulumi.getter
def assignments(self) -> pulumi.Input[_builtins.str]:
"""
JSON array scoping which projects or environments may resolve secrets from this provider. Pass `jsonencode([])` to leave it unscoped.
"""
return pulumi.get(self, "assignments")
@assignments.setter
def assignments(self, value: pulumi.Input[_builtins.str]):
pulumi.set(self, "assignments", value)
@_builtins.property
@pulumi.getter
def config(self) -> pulumi.Input[_builtins.str]:
"""
Provider credentials as a JSON object, including the `providerType` discriminator.
"""
return pulumi.get(self, "config")
@config.setter
def config(self, value: pulumi.Input[_builtins.str]):
pulumi.set(self, "config", value)
@_builtins.property
@pulumi.getter
def name(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Name of the connection, unique within the organization.
"""
return pulumi.get(self, "name")
@name.setter
def name(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "name", value)
@pulumi.input_type
class _VaultProviderState:
def __init__(__self__, *,
assignments: pulumi.Input[Optional[_builtins.str]] = None,
config: pulumi.Input[Optional[_builtins.str]] = None,
created_at: pulumi.Input[Optional[_builtins.str]] = None,
name: pulumi.Input[Optional[_builtins.str]] = None,
organization_id: pulumi.Input[Optional[_builtins.str]] = None,
provider_type: pulumi.Input[Optional[_builtins.str]] = None):
"""
Input properties used for looking up and filtering VaultProvider resources.
:param pulumi.Input[_builtins.str] assignments: JSON array scoping which projects or environments may resolve secrets from this provider. Pass `jsonencode([])` to leave it unscoped.
:param pulumi.Input[_builtins.str] config: Provider credentials as a JSON object, including the `providerType` discriminator.
:param pulumi.Input[_builtins.str] created_at: RFC 3339 timestamp of when the connection was created.
:param pulumi.Input[_builtins.str] name: Name of the connection, unique within the organization.
:param pulumi.Input[_builtins.str] organization_id: Organization that owns the connection.
:param pulumi.Input[_builtins.str] provider_type: Provider kind derived from `config`.
"""
if assignments is not None:
pulumi.set(__self__, "assignments", assignments)
if config is not None:
pulumi.set(__self__, "config", config)
if created_at is not None:
pulumi.set(__self__, "created_at", created_at)
if name is not None:
pulumi.set(__self__, "name", name)
if organization_id is not None:
pulumi.set(__self__, "organization_id", organization_id)
if provider_type is not None:
pulumi.set(__self__, "provider_type", provider_type)
@_builtins.property
@pulumi.getter
def assignments(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
JSON array scoping which projects or environments may resolve secrets from this provider. Pass `jsonencode([])` to leave it unscoped.
"""
return pulumi.get(self, "assignments")
@assignments.setter
def assignments(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "assignments", value)
@_builtins.property
@pulumi.getter
def config(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Provider credentials as a JSON object, including the `providerType` discriminator.
"""
return pulumi.get(self, "config")
@config.setter
def config(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "config", value)
@_builtins.property
@pulumi.getter(name="createdAt")
def created_at(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
RFC 3339 timestamp of when the connection was created.
"""
return pulumi.get(self, "created_at")
@created_at.setter
def created_at(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "created_at", value)
@_builtins.property
@pulumi.getter
def name(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Name of the connection, unique within the organization.
"""
return pulumi.get(self, "name")
@name.setter
def name(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "name", value)
@_builtins.property
@pulumi.getter(name="organizationId")
def organization_id(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Organization that owns the connection.
"""
return pulumi.get(self, "organization_id")
@organization_id.setter
def organization_id(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "organization_id", value)
@_builtins.property
@pulumi.getter(name="providerType")
def provider_type(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Provider kind derived from `config`.
"""
return pulumi.get(self, "provider_type")
@provider_type.setter
def provider_type(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "provider_type", value)
@pulumi.type_token("dokploy:index/vaultProvider:VaultProvider")
class VaultProvider(pulumi.CustomResource):
@overload
def __init__(__self__,
resource_name: str,
opts: Optional[pulumi.ResourceOptions] = None,
assignments: pulumi.Input[Optional[_builtins.str]] = None,
config: pulumi.Input[Optional[_builtins.str]] = None,
name: pulumi.Input[Optional[_builtins.str]] = None,
__props__=None):
"""
An external secret manager Dokploy resolves environment variables from at deploy time.
Reference a secret from any `env` value with `${{vault.<scope>.<key>}}`. The value is fetched when the deployment runs and is never stored in Dokploy — so rotating it in the vault takes effect on the next deploy with no Terraform change.
Supported `providerType` values: `hashicorp` (Vault/OpenBao), `infisical`, `aws` (Secrets Manager), `doppler`, `azure` (Key Vault) and `scaleway`.
:param str resource_name: The name of the resource.
:param pulumi.ResourceOptions opts: Options for the resource.
:param pulumi.Input[_builtins.str] assignments: JSON array scoping which projects or environments may resolve secrets from this provider. Pass `jsonencode([])` to leave it unscoped.
:param pulumi.Input[_builtins.str] config: Provider credentials as a JSON object, including the `providerType` discriminator.
:param pulumi.Input[_builtins.str] name: Name of the connection, unique within the organization.
"""
...
@overload
def __init__(__self__,
resource_name: str,
args: VaultProviderArgs,
opts: Optional[pulumi.ResourceOptions] = None):
"""
An external secret manager Dokploy resolves environment variables from at deploy time.
Reference a secret from any `env` value with `${{vault.<scope>.<key>}}`. The value is fetched when the deployment runs and is never stored in Dokploy — so rotating it in the vault takes effect on the next deploy with no Terraform change.
Supported `providerType` values: `hashicorp` (Vault/OpenBao), `infisical`, `aws` (Secrets Manager), `doppler`, `azure` (Key Vault) and `scaleway`.
:param str resource_name: The name of the resource.
:param VaultProviderArgs args: The arguments to use to populate this resource's properties.
:param pulumi.ResourceOptions opts: Options for the resource.
"""
...
def __init__(__self__, resource_name: str, *args, **kwargs):
resource_args, opts = _utilities.get_resource_args_opts(VaultProviderArgs, pulumi.ResourceOptions, *args, **kwargs)
if resource_args is not None:
__self__._internal_init(resource_name, opts, **resource_args.__dict__)
else:
__self__._internal_init(resource_name, *args, **kwargs)
def _internal_init(__self__,
resource_name: str,
opts: Optional[pulumi.ResourceOptions] = None,
assignments: pulumi.Input[Optional[_builtins.str]] = None,
config: pulumi.Input[Optional[_builtins.str]] = None,
name: pulumi.Input[Optional[_builtins.str]] = None,
__props__=None):
opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
if not isinstance(opts, pulumi.ResourceOptions):
raise TypeError('Expected resource options to be a ResourceOptions instance')
if opts.id is None:
if __props__ is not None:
raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
__props__ = VaultProviderArgs.__new__(VaultProviderArgs)
if assignments is None and not opts.urn:
raise TypeError("Missing required property 'assignments'")
__props__.__dict__["assignments"] = assignments
if config is None and not opts.urn:
raise TypeError("Missing required property 'config'")
__props__.__dict__["config"] = None if config is None else pulumi.Output.secret(config)
__props__.__dict__["name"] = name
__props__.__dict__["created_at"] = None
__props__.__dict__["organization_id"] = None
__props__.__dict__["provider_type"] = None
secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["config"])
opts = pulumi.ResourceOptions.merge(opts, secret_opts)
super(VaultProvider, __self__).__init__(
'dokploy:index/vaultProvider:VaultProvider',
resource_name,
__props__,
opts)
@staticmethod
def get(resource_name: str,
id: pulumi.Input[str],
opts: Optional[pulumi.ResourceOptions] = None,
assignments: pulumi.Input[Optional[_builtins.str]] = None,
config: pulumi.Input[Optional[_builtins.str]] = None,
created_at: pulumi.Input[Optional[_builtins.str]] = None,
name: pulumi.Input[Optional[_builtins.str]] = None,
organization_id: pulumi.Input[Optional[_builtins.str]] = None,
provider_type: pulumi.Input[Optional[_builtins.str]] = None) -> 'VaultProvider':
"""
Get an existing VaultProvider resource's state with the given name, id, and optional extra
properties used to qualify the lookup.
:param str resource_name: The unique name of the resulting resource.
:param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
:param pulumi.ResourceOptions opts: Options for the resource.
:param pulumi.Input[_builtins.str] assignments: JSON array scoping which projects or environments may resolve secrets from this provider. Pass `jsonencode([])` to leave it unscoped.
:param pulumi.Input[_builtins.str] config: Provider credentials as a JSON object, including the `providerType` discriminator.
:param pulumi.Input[_builtins.str] created_at: RFC 3339 timestamp of when the connection was created.
:param pulumi.Input[_builtins.str] name: Name of the connection, unique within the organization.
:param pulumi.Input[_builtins.str] organization_id: Organization that owns the connection.
:param pulumi.Input[_builtins.str] provider_type: Provider kind derived from `config`.
"""
opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
__props__ = _VaultProviderState.__new__(_VaultProviderState)
__props__.__dict__["assignments"] = assignments
__props__.__dict__["config"] = config
__props__.__dict__["created_at"] = created_at
__props__.__dict__["name"] = name
__props__.__dict__["organization_id"] = organization_id
__props__.__dict__["provider_type"] = provider_type
return VaultProvider(resource_name, opts=opts, __props__=__props__)
@_builtins.property
@pulumi.getter
def assignments(self) -> pulumi.Output[_builtins.str]:
"""
JSON array scoping which projects or environments may resolve secrets from this provider. Pass `jsonencode([])` to leave it unscoped.
"""
return pulumi.get(self, "assignments")
@_builtins.property
@pulumi.getter
def config(self) -> pulumi.Output[_builtins.str]:
"""
Provider credentials as a JSON object, including the `providerType` discriminator.
"""
return pulumi.get(self, "config")
@_builtins.property
@pulumi.getter(name="createdAt")
def created_at(self) -> pulumi.Output[_builtins.str]:
"""
RFC 3339 timestamp of when the connection was created.
"""
return pulumi.get(self, "created_at")
@_builtins.property
@pulumi.getter
def name(self) -> pulumi.Output[_builtins.str]:
"""
Name of the connection, unique within the organization.
"""
return pulumi.get(self, "name")
@_builtins.property
@pulumi.getter(name="organizationId")
def organization_id(self) -> pulumi.Output[_builtins.str]:
"""
Organization that owns the connection.
"""
return pulumi.get(self, "organization_id")
@_builtins.property
@pulumi.getter(name="providerType")
def provider_type(self) -> pulumi.Output[_builtins.str]:
"""
Provider kind derived from `config`.
"""
return pulumi.get(self, "provider_type")
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -5,7 +5,7 @@
keywords = ["pulumi", "dokploy", "paas", "docker", "deployment", "category/cloud", "category/infrastructure"]
readme = "README.md"
requires-python = ">=3.9"
version = "0.1.0"
version = "0.2.0"
[project.license]
text = "MPL-2.0"
[project.urls]