Files
pulumi-dokploy/sdk/python/pulumi_dokploy/postgres.py
T
max-voitcov 73386ba0ff
build / build (push) Failing after 11m22s
release / plugin (push) Failing after 31m35s
release / sdks (push) Has been skipped
Bridge what Dokploy v0.30 added, and let the docs through
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`.
2026-08-26 00:46:32 +03:00

1637 lines
76 KiB
Python
Generated

# 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__ = ['PostgresArgs', 'Postgres']
@pulumi.input_type
class PostgresArgs:
def __init__(__self__, *,
database_name: pulumi.Input[_builtins.str],
database_password: pulumi.Input[_builtins.str],
database_user: pulumi.Input[_builtins.str],
docker_image: pulumi.Input[_builtins.str],
environment_id: pulumi.Input[_builtins.str],
app_name: pulumi.Input[Optional[_builtins.str]] = None,
args: pulumi.Input[Optional[Sequence[pulumi.Input[_builtins.str]]]] = None,
command: pulumi.Input[Optional[_builtins.str]] = None,
cpu_limit: pulumi.Input[Optional[_builtins.str]] = None,
cpu_reservation: pulumi.Input[Optional[_builtins.str]] = None,
description: pulumi.Input[Optional[_builtins.str]] = None,
detach_dokploy_network: pulumi.Input[Optional[_builtins.bool]] = None,
endpoint_spec_swarm: pulumi.Input[Optional[_builtins.str]] = None,
env: pulumi.Input[Optional[_builtins.str]] = None,
external_port: pulumi.Input[Optional[_builtins.int]] = None,
health_check_swarm: pulumi.Input[Optional[_builtins.str]] = None,
labels_swarm: pulumi.Input[Optional[_builtins.str]] = None,
memory_limit: pulumi.Input[Optional[_builtins.str]] = None,
memory_reservation: pulumi.Input[Optional[_builtins.str]] = None,
mode_swarm: pulumi.Input[Optional[_builtins.str]] = None,
name: pulumi.Input[Optional[_builtins.str]] = None,
network_ids: pulumi.Input[Optional[Sequence[pulumi.Input[_builtins.str]]]] = None,
network_swarm: pulumi.Input[Optional[_builtins.str]] = None,
placement_swarm: pulumi.Input[Optional[_builtins.str]] = None,
replicas: pulumi.Input[Optional[_builtins.int]] = None,
restart_policy_swarm: pulumi.Input[Optional[_builtins.str]] = None,
rollback_config_swarm: pulumi.Input[Optional[_builtins.str]] = None,
server_id: pulumi.Input[Optional[_builtins.str]] = None,
stop_grace_period_swarm: pulumi.Input[Optional[_builtins.int]] = None,
ulimits_swarm: pulumi.Input[Optional[_builtins.str]] = None,
update_config_swarm: pulumi.Input[Optional[_builtins.str]] = None):
"""
The set of arguments for constructing a Postgres resource.
:param pulumi.Input[_builtins.str] database_name: Name of the database to create.
:param pulumi.Input[_builtins.str] database_password: Password for the database user.
:param pulumi.Input[_builtins.str] database_user: Database user to create.
:param pulumi.Input[_builtins.str] docker_image: PostgreSQL image to run, for example `postgres:16`.
:param pulumi.Input[_builtins.str] environment_id: Environment this database belongs to.
:param pulumi.Input[_builtins.str] app_name: Unique Docker service name. Generated by Dokploy when omitted. Changing it forces a new database.
:param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] args: Arguments appended to the container command.
:param pulumi.Input[_builtins.str] command: Override the container entrypoint command.
:param pulumi.Input[_builtins.str] cpu_limit: Hard CPU limit, for example `1`.
:param pulumi.Input[_builtins.str] cpu_reservation: Soft CPU reservation, for example `0.5`.
:param pulumi.Input[_builtins.str] description: Free-form description.
:param pulumi.Input[_builtins.bool] detach_dokploy_network: Detach the service from the shared `dokploy-network`.
:param pulumi.Input[_builtins.str] endpoint_spec_swarm: Docker Swarm endpoint specification, as a JSON object.
:param pulumi.Input[_builtins.str] env: Environment variables in `KEY=value` format, one per line.
:param pulumi.Input[_builtins.int] external_port: Host port to expose the database on. Leave unset to keep the database reachable only from inside the Docker network.
:param pulumi.Input[_builtins.str] health_check_swarm: Docker Swarm health check configuration, as a JSON object.
:param pulumi.Input[_builtins.str] labels_swarm: Docker Swarm service labels, as a JSON object.
:param pulumi.Input[_builtins.str] memory_limit: Hard memory limit, for example `512m`.
:param pulumi.Input[_builtins.str] memory_reservation: Soft memory reservation, for example `256m`.
:param pulumi.Input[_builtins.str] mode_swarm: Docker Swarm service mode, as a JSON object.
:param pulumi.Input[_builtins.str] name: Display name of the database.
:param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] network_ids: IDs of additional Docker networks to attach.
:param pulumi.Input[_builtins.str] network_swarm: Docker Swarm network attachments, as a JSON array.
:param pulumi.Input[_builtins.str] placement_swarm: Docker Swarm placement constraints, as a JSON object.
:param pulumi.Input[_builtins.int] replicas: Number of replicas to run.
:param pulumi.Input[_builtins.str] restart_policy_swarm: Docker Swarm restart policy, as a JSON object.
:param pulumi.Input[_builtins.str] rollback_config_swarm: Docker Swarm rollback configuration, as a JSON object.
:param pulumi.Input[_builtins.str] server_id: Remote server to deploy on. Omit to use the Dokploy host itself.
:param pulumi.Input[_builtins.int] stop_grace_period_swarm: Grace period in nanoseconds before a container is killed.
:param pulumi.Input[_builtins.str] ulimits_swarm: Docker Swarm ulimits, as a JSON object.
:param pulumi.Input[_builtins.str] update_config_swarm: Docker Swarm rolling update configuration, as a JSON object.
"""
pulumi.set(__self__, "database_name", database_name)
pulumi.set(__self__, "database_password", database_password)
pulumi.set(__self__, "database_user", database_user)
pulumi.set(__self__, "docker_image", docker_image)
pulumi.set(__self__, "environment_id", environment_id)
if app_name is not None:
pulumi.set(__self__, "app_name", app_name)
if args is not None:
pulumi.set(__self__, "args", args)
if command is not None:
pulumi.set(__self__, "command", command)
if cpu_limit is not None:
pulumi.set(__self__, "cpu_limit", cpu_limit)
if cpu_reservation is not None:
pulumi.set(__self__, "cpu_reservation", cpu_reservation)
if description is not None:
pulumi.set(__self__, "description", description)
if detach_dokploy_network is not None:
pulumi.set(__self__, "detach_dokploy_network", detach_dokploy_network)
if endpoint_spec_swarm is not None:
pulumi.set(__self__, "endpoint_spec_swarm", endpoint_spec_swarm)
if env is not None:
pulumi.set(__self__, "env", env)
if external_port is not None:
pulumi.set(__self__, "external_port", external_port)
if health_check_swarm is not None:
pulumi.set(__self__, "health_check_swarm", health_check_swarm)
if labels_swarm is not None:
pulumi.set(__self__, "labels_swarm", labels_swarm)
if memory_limit is not None:
pulumi.set(__self__, "memory_limit", memory_limit)
if memory_reservation is not None:
pulumi.set(__self__, "memory_reservation", memory_reservation)
if mode_swarm is not None:
pulumi.set(__self__, "mode_swarm", mode_swarm)
if name is not None:
pulumi.set(__self__, "name", name)
if network_ids is not None:
pulumi.set(__self__, "network_ids", network_ids)
if network_swarm is not None:
pulumi.set(__self__, "network_swarm", network_swarm)
if placement_swarm is not None:
pulumi.set(__self__, "placement_swarm", placement_swarm)
if replicas is not None:
pulumi.set(__self__, "replicas", replicas)
if restart_policy_swarm is not None:
pulumi.set(__self__, "restart_policy_swarm", restart_policy_swarm)
if rollback_config_swarm is not None:
pulumi.set(__self__, "rollback_config_swarm", rollback_config_swarm)
if server_id is not None:
pulumi.set(__self__, "server_id", server_id)
if stop_grace_period_swarm is not None:
pulumi.set(__self__, "stop_grace_period_swarm", stop_grace_period_swarm)
if ulimits_swarm is not None:
pulumi.set(__self__, "ulimits_swarm", ulimits_swarm)
if update_config_swarm is not None:
pulumi.set(__self__, "update_config_swarm", update_config_swarm)
@_builtins.property
@pulumi.getter(name="databaseName")
def database_name(self) -> pulumi.Input[_builtins.str]:
"""
Name of the database to create.
"""
return pulumi.get(self, "database_name")
@database_name.setter
def database_name(self, value: pulumi.Input[_builtins.str]):
pulumi.set(self, "database_name", value)
@_builtins.property
@pulumi.getter(name="databasePassword")
def database_password(self) -> pulumi.Input[_builtins.str]:
"""
Password for the database user.
"""
return pulumi.get(self, "database_password")
@database_password.setter
def database_password(self, value: pulumi.Input[_builtins.str]):
pulumi.set(self, "database_password", value)
@_builtins.property
@pulumi.getter(name="databaseUser")
def database_user(self) -> pulumi.Input[_builtins.str]:
"""
Database user to create.
"""
return pulumi.get(self, "database_user")
@database_user.setter
def database_user(self, value: pulumi.Input[_builtins.str]):
pulumi.set(self, "database_user", value)
@_builtins.property
@pulumi.getter(name="dockerImage")
def docker_image(self) -> pulumi.Input[_builtins.str]:
"""
PostgreSQL image to run, for example `postgres:16`.
"""
return pulumi.get(self, "docker_image")
@docker_image.setter
def docker_image(self, value: pulumi.Input[_builtins.str]):
pulumi.set(self, "docker_image", value)
@_builtins.property
@pulumi.getter(name="environmentId")
def environment_id(self) -> pulumi.Input[_builtins.str]:
"""
Environment this database belongs to.
"""
return pulumi.get(self, "environment_id")
@environment_id.setter
def environment_id(self, value: pulumi.Input[_builtins.str]):
pulumi.set(self, "environment_id", value)
@_builtins.property
@pulumi.getter(name="appName")
def app_name(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Unique Docker service name. Generated by Dokploy when omitted. Changing it forces a new database.
"""
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
def args(self) -> pulumi.Input[Optional[Sequence[pulumi.Input[_builtins.str]]]]:
"""
Arguments appended to the container command.
"""
return pulumi.get(self, "args")
@args.setter
def args(self, value: pulumi.Input[Optional[Sequence[pulumi.Input[_builtins.str]]]]):
pulumi.set(self, "args", value)
@_builtins.property
@pulumi.getter
def command(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Override the container entrypoint command.
"""
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="cpuLimit")
def cpu_limit(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Hard CPU limit, for example `1`.
"""
return pulumi.get(self, "cpu_limit")
@cpu_limit.setter
def cpu_limit(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "cpu_limit", value)
@_builtins.property
@pulumi.getter(name="cpuReservation")
def cpu_reservation(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Soft CPU reservation, for example `0.5`.
"""
return pulumi.get(self, "cpu_reservation")
@cpu_reservation.setter
def cpu_reservation(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "cpu_reservation", 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(name="detachDokployNetwork")
def detach_dokploy_network(self) -> pulumi.Input[Optional[_builtins.bool]]:
"""
Detach the service from the shared `dokploy-network`.
"""
return pulumi.get(self, "detach_dokploy_network")
@detach_dokploy_network.setter
def detach_dokploy_network(self, value: pulumi.Input[Optional[_builtins.bool]]):
pulumi.set(self, "detach_dokploy_network", value)
@_builtins.property
@pulumi.getter(name="endpointSpecSwarm")
def endpoint_spec_swarm(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Docker Swarm endpoint specification, as a JSON object.
"""
return pulumi.get(self, "endpoint_spec_swarm")
@endpoint_spec_swarm.setter
def endpoint_spec_swarm(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "endpoint_spec_swarm", value)
@_builtins.property
@pulumi.getter
def env(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Environment variables in `KEY=value` format, one per line.
"""
return pulumi.get(self, "env")
@env.setter
def env(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "env", value)
@_builtins.property
@pulumi.getter(name="externalPort")
def external_port(self) -> pulumi.Input[Optional[_builtins.int]]:
"""
Host port to expose the database on. Leave unset to keep the database reachable only from inside the Docker network.
"""
return pulumi.get(self, "external_port")
@external_port.setter
def external_port(self, value: pulumi.Input[Optional[_builtins.int]]):
pulumi.set(self, "external_port", value)
@_builtins.property
@pulumi.getter(name="healthCheckSwarm")
def health_check_swarm(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Docker Swarm health check configuration, as a JSON object.
"""
return pulumi.get(self, "health_check_swarm")
@health_check_swarm.setter
def health_check_swarm(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "health_check_swarm", value)
@_builtins.property
@pulumi.getter(name="labelsSwarm")
def labels_swarm(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Docker Swarm service labels, as a JSON object.
"""
return pulumi.get(self, "labels_swarm")
@labels_swarm.setter
def labels_swarm(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "labels_swarm", value)
@_builtins.property
@pulumi.getter(name="memoryLimit")
def memory_limit(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Hard memory limit, for example `512m`.
"""
return pulumi.get(self, "memory_limit")
@memory_limit.setter
def memory_limit(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "memory_limit", value)
@_builtins.property
@pulumi.getter(name="memoryReservation")
def memory_reservation(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Soft memory reservation, for example `256m`.
"""
return pulumi.get(self, "memory_reservation")
@memory_reservation.setter
def memory_reservation(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "memory_reservation", value)
@_builtins.property
@pulumi.getter(name="modeSwarm")
def mode_swarm(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Docker Swarm service mode, as a JSON object.
"""
return pulumi.get(self, "mode_swarm")
@mode_swarm.setter
def mode_swarm(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "mode_swarm", value)
@_builtins.property
@pulumi.getter
def name(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Display name of the database.
"""
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="networkIds")
def network_ids(self) -> pulumi.Input[Optional[Sequence[pulumi.Input[_builtins.str]]]]:
"""
IDs of additional Docker networks to attach.
"""
return pulumi.get(self, "network_ids")
@network_ids.setter
def network_ids(self, value: pulumi.Input[Optional[Sequence[pulumi.Input[_builtins.str]]]]):
pulumi.set(self, "network_ids", value)
@_builtins.property
@pulumi.getter(name="networkSwarm")
def network_swarm(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Docker Swarm network attachments, as a JSON array.
"""
return pulumi.get(self, "network_swarm")
@network_swarm.setter
def network_swarm(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "network_swarm", value)
@_builtins.property
@pulumi.getter(name="placementSwarm")
def placement_swarm(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Docker Swarm placement constraints, as a JSON object.
"""
return pulumi.get(self, "placement_swarm")
@placement_swarm.setter
def placement_swarm(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "placement_swarm", value)
@_builtins.property
@pulumi.getter
def replicas(self) -> pulumi.Input[Optional[_builtins.int]]:
"""
Number of replicas to run.
"""
return pulumi.get(self, "replicas")
@replicas.setter
def replicas(self, value: pulumi.Input[Optional[_builtins.int]]):
pulumi.set(self, "replicas", value)
@_builtins.property
@pulumi.getter(name="restartPolicySwarm")
def restart_policy_swarm(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Docker Swarm restart policy, as a JSON object.
"""
return pulumi.get(self, "restart_policy_swarm")
@restart_policy_swarm.setter
def restart_policy_swarm(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "restart_policy_swarm", value)
@_builtins.property
@pulumi.getter(name="rollbackConfigSwarm")
def rollback_config_swarm(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Docker Swarm rollback configuration, as a JSON object.
"""
return pulumi.get(self, "rollback_config_swarm")
@rollback_config_swarm.setter
def rollback_config_swarm(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "rollback_config_swarm", value)
@_builtins.property
@pulumi.getter(name="serverId")
def server_id(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Remote server to deploy 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)
@_builtins.property
@pulumi.getter(name="stopGracePeriodSwarm")
def stop_grace_period_swarm(self) -> pulumi.Input[Optional[_builtins.int]]:
"""
Grace period in nanoseconds before a container is killed.
"""
return pulumi.get(self, "stop_grace_period_swarm")
@stop_grace_period_swarm.setter
def stop_grace_period_swarm(self, value: pulumi.Input[Optional[_builtins.int]]):
pulumi.set(self, "stop_grace_period_swarm", value)
@_builtins.property
@pulumi.getter(name="ulimitsSwarm")
def ulimits_swarm(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Docker Swarm ulimits, as a JSON object.
"""
return pulumi.get(self, "ulimits_swarm")
@ulimits_swarm.setter
def ulimits_swarm(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "ulimits_swarm", value)
@_builtins.property
@pulumi.getter(name="updateConfigSwarm")
def update_config_swarm(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Docker Swarm rolling update configuration, as a JSON object.
"""
return pulumi.get(self, "update_config_swarm")
@update_config_swarm.setter
def update_config_swarm(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "update_config_swarm", value)
@pulumi.input_type
class _PostgresState:
def __init__(__self__, *,
app_name: pulumi.Input[Optional[_builtins.str]] = None,
application_status: pulumi.Input[Optional[_builtins.str]] = None,
args: pulumi.Input[Optional[Sequence[pulumi.Input[_builtins.str]]]] = None,
command: pulumi.Input[Optional[_builtins.str]] = None,
cpu_limit: pulumi.Input[Optional[_builtins.str]] = None,
cpu_reservation: pulumi.Input[Optional[_builtins.str]] = None,
created_at: pulumi.Input[Optional[_builtins.str]] = None,
database_name: pulumi.Input[Optional[_builtins.str]] = None,
database_password: pulumi.Input[Optional[_builtins.str]] = None,
database_user: pulumi.Input[Optional[_builtins.str]] = None,
description: pulumi.Input[Optional[_builtins.str]] = None,
detach_dokploy_network: pulumi.Input[Optional[_builtins.bool]] = None,
docker_image: pulumi.Input[Optional[_builtins.str]] = None,
endpoint_spec_swarm: pulumi.Input[Optional[_builtins.str]] = None,
env: pulumi.Input[Optional[_builtins.str]] = None,
environment_id: pulumi.Input[Optional[_builtins.str]] = None,
external_port: pulumi.Input[Optional[_builtins.int]] = None,
health_check_swarm: pulumi.Input[Optional[_builtins.str]] = None,
labels_swarm: pulumi.Input[Optional[_builtins.str]] = None,
memory_limit: pulumi.Input[Optional[_builtins.str]] = None,
memory_reservation: pulumi.Input[Optional[_builtins.str]] = None,
mode_swarm: pulumi.Input[Optional[_builtins.str]] = None,
name: pulumi.Input[Optional[_builtins.str]] = None,
network_ids: pulumi.Input[Optional[Sequence[pulumi.Input[_builtins.str]]]] = None,
network_swarm: pulumi.Input[Optional[_builtins.str]] = None,
placement_swarm: pulumi.Input[Optional[_builtins.str]] = None,
replicas: pulumi.Input[Optional[_builtins.int]] = None,
restart_policy_swarm: pulumi.Input[Optional[_builtins.str]] = None,
rollback_config_swarm: pulumi.Input[Optional[_builtins.str]] = None,
server_id: pulumi.Input[Optional[_builtins.str]] = None,
stop_grace_period_swarm: pulumi.Input[Optional[_builtins.int]] = None,
ulimits_swarm: pulumi.Input[Optional[_builtins.str]] = None,
update_config_swarm: pulumi.Input[Optional[_builtins.str]] = None):
"""
Input properties used for looking up and filtering Postgres resources.
:param pulumi.Input[_builtins.str] app_name: Unique Docker service name. Generated by Dokploy when omitted. Changing it forces a new database.
:param pulumi.Input[_builtins.str] application_status: Current status reported by Dokploy: `idle`, `running`, `done` or `error`.
:param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] args: Arguments appended to the container command.
:param pulumi.Input[_builtins.str] command: Override the container entrypoint command.
:param pulumi.Input[_builtins.str] cpu_limit: Hard CPU limit, for example `1`.
:param pulumi.Input[_builtins.str] cpu_reservation: Soft CPU reservation, for example `0.5`.
:param pulumi.Input[_builtins.str] created_at: RFC 3339 timestamp of when the database was created.
:param pulumi.Input[_builtins.str] database_name: Name of the database to create.
:param pulumi.Input[_builtins.str] database_password: Password for the database user.
:param pulumi.Input[_builtins.str] database_user: Database user to create.
:param pulumi.Input[_builtins.str] description: Free-form description.
:param pulumi.Input[_builtins.bool] detach_dokploy_network: Detach the service from the shared `dokploy-network`.
:param pulumi.Input[_builtins.str] docker_image: PostgreSQL image to run, for example `postgres:16`.
:param pulumi.Input[_builtins.str] endpoint_spec_swarm: Docker Swarm endpoint specification, as a JSON object.
:param pulumi.Input[_builtins.str] env: Environment variables in `KEY=value` format, one per line.
:param pulumi.Input[_builtins.str] environment_id: Environment this database belongs to.
:param pulumi.Input[_builtins.int] external_port: Host port to expose the database on. Leave unset to keep the database reachable only from inside the Docker network.
:param pulumi.Input[_builtins.str] health_check_swarm: Docker Swarm health check configuration, as a JSON object.
:param pulumi.Input[_builtins.str] labels_swarm: Docker Swarm service labels, as a JSON object.
:param pulumi.Input[_builtins.str] memory_limit: Hard memory limit, for example `512m`.
:param pulumi.Input[_builtins.str] memory_reservation: Soft memory reservation, for example `256m`.
:param pulumi.Input[_builtins.str] mode_swarm: Docker Swarm service mode, as a JSON object.
:param pulumi.Input[_builtins.str] name: Display name of the database.
:param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] network_ids: IDs of additional Docker networks to attach.
:param pulumi.Input[_builtins.str] network_swarm: Docker Swarm network attachments, as a JSON array.
:param pulumi.Input[_builtins.str] placement_swarm: Docker Swarm placement constraints, as a JSON object.
:param pulumi.Input[_builtins.int] replicas: Number of replicas to run.
:param pulumi.Input[_builtins.str] restart_policy_swarm: Docker Swarm restart policy, as a JSON object.
:param pulumi.Input[_builtins.str] rollback_config_swarm: Docker Swarm rollback configuration, as a JSON object.
:param pulumi.Input[_builtins.str] server_id: Remote server to deploy on. Omit to use the Dokploy host itself.
:param pulumi.Input[_builtins.int] stop_grace_period_swarm: Grace period in nanoseconds before a container is killed.
:param pulumi.Input[_builtins.str] ulimits_swarm: Docker Swarm ulimits, as a JSON object.
:param pulumi.Input[_builtins.str] update_config_swarm: Docker Swarm rolling update configuration, as a JSON object.
"""
if app_name is not None:
pulumi.set(__self__, "app_name", app_name)
if application_status is not None:
pulumi.set(__self__, "application_status", application_status)
if args is not None:
pulumi.set(__self__, "args", args)
if command is not None:
pulumi.set(__self__, "command", command)
if cpu_limit is not None:
pulumi.set(__self__, "cpu_limit", cpu_limit)
if cpu_reservation is not None:
pulumi.set(__self__, "cpu_reservation", cpu_reservation)
if created_at is not None:
pulumi.set(__self__, "created_at", created_at)
if database_name is not None:
pulumi.set(__self__, "database_name", database_name)
if database_password is not None:
pulumi.set(__self__, "database_password", database_password)
if database_user is not None:
pulumi.set(__self__, "database_user", database_user)
if description is not None:
pulumi.set(__self__, "description", description)
if detach_dokploy_network is not None:
pulumi.set(__self__, "detach_dokploy_network", detach_dokploy_network)
if docker_image is not None:
pulumi.set(__self__, "docker_image", docker_image)
if endpoint_spec_swarm is not None:
pulumi.set(__self__, "endpoint_spec_swarm", endpoint_spec_swarm)
if env is not None:
pulumi.set(__self__, "env", env)
if environment_id is not None:
pulumi.set(__self__, "environment_id", environment_id)
if external_port is not None:
pulumi.set(__self__, "external_port", external_port)
if health_check_swarm is not None:
pulumi.set(__self__, "health_check_swarm", health_check_swarm)
if labels_swarm is not None:
pulumi.set(__self__, "labels_swarm", labels_swarm)
if memory_limit is not None:
pulumi.set(__self__, "memory_limit", memory_limit)
if memory_reservation is not None:
pulumi.set(__self__, "memory_reservation", memory_reservation)
if mode_swarm is not None:
pulumi.set(__self__, "mode_swarm", mode_swarm)
if name is not None:
pulumi.set(__self__, "name", name)
if network_ids is not None:
pulumi.set(__self__, "network_ids", network_ids)
if network_swarm is not None:
pulumi.set(__self__, "network_swarm", network_swarm)
if placement_swarm is not None:
pulumi.set(__self__, "placement_swarm", placement_swarm)
if replicas is not None:
pulumi.set(__self__, "replicas", replicas)
if restart_policy_swarm is not None:
pulumi.set(__self__, "restart_policy_swarm", restart_policy_swarm)
if rollback_config_swarm is not None:
pulumi.set(__self__, "rollback_config_swarm", rollback_config_swarm)
if server_id is not None:
pulumi.set(__self__, "server_id", server_id)
if stop_grace_period_swarm is not None:
pulumi.set(__self__, "stop_grace_period_swarm", stop_grace_period_swarm)
if ulimits_swarm is not None:
pulumi.set(__self__, "ulimits_swarm", ulimits_swarm)
if update_config_swarm is not None:
pulumi.set(__self__, "update_config_swarm", update_config_swarm)
@_builtins.property
@pulumi.getter(name="appName")
def app_name(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Unique Docker service name. Generated by Dokploy when omitted. Changing it forces a new database.
"""
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="applicationStatus")
def application_status(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Current status reported by Dokploy: `idle`, `running`, `done` or `error`.
"""
return pulumi.get(self, "application_status")
@application_status.setter
def application_status(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "application_status", value)
@_builtins.property
@pulumi.getter
def args(self) -> pulumi.Input[Optional[Sequence[pulumi.Input[_builtins.str]]]]:
"""
Arguments appended to the container command.
"""
return pulumi.get(self, "args")
@args.setter
def args(self, value: pulumi.Input[Optional[Sequence[pulumi.Input[_builtins.str]]]]):
pulumi.set(self, "args", value)
@_builtins.property
@pulumi.getter
def command(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Override the container entrypoint command.
"""
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="cpuLimit")
def cpu_limit(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Hard CPU limit, for example `1`.
"""
return pulumi.get(self, "cpu_limit")
@cpu_limit.setter
def cpu_limit(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "cpu_limit", value)
@_builtins.property
@pulumi.getter(name="cpuReservation")
def cpu_reservation(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Soft CPU reservation, for example `0.5`.
"""
return pulumi.get(self, "cpu_reservation")
@cpu_reservation.setter
def cpu_reservation(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "cpu_reservation", value)
@_builtins.property
@pulumi.getter(name="createdAt")
def created_at(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
RFC 3339 timestamp of when the database 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="databaseName")
def database_name(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Name of the database to create.
"""
return pulumi.get(self, "database_name")
@database_name.setter
def database_name(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "database_name", value)
@_builtins.property
@pulumi.getter(name="databasePassword")
def database_password(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Password for the database user.
"""
return pulumi.get(self, "database_password")
@database_password.setter
def database_password(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "database_password", value)
@_builtins.property
@pulumi.getter(name="databaseUser")
def database_user(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Database user to create.
"""
return pulumi.get(self, "database_user")
@database_user.setter
def database_user(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "database_user", 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(name="detachDokployNetwork")
def detach_dokploy_network(self) -> pulumi.Input[Optional[_builtins.bool]]:
"""
Detach the service from the shared `dokploy-network`.
"""
return pulumi.get(self, "detach_dokploy_network")
@detach_dokploy_network.setter
def detach_dokploy_network(self, value: pulumi.Input[Optional[_builtins.bool]]):
pulumi.set(self, "detach_dokploy_network", value)
@_builtins.property
@pulumi.getter(name="dockerImage")
def docker_image(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
PostgreSQL image to run, for example `postgres:16`.
"""
return pulumi.get(self, "docker_image")
@docker_image.setter
def docker_image(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "docker_image", value)
@_builtins.property
@pulumi.getter(name="endpointSpecSwarm")
def endpoint_spec_swarm(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Docker Swarm endpoint specification, as a JSON object.
"""
return pulumi.get(self, "endpoint_spec_swarm")
@endpoint_spec_swarm.setter
def endpoint_spec_swarm(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "endpoint_spec_swarm", value)
@_builtins.property
@pulumi.getter
def env(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Environment variables in `KEY=value` format, one per line.
"""
return pulumi.get(self, "env")
@env.setter
def env(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "env", value)
@_builtins.property
@pulumi.getter(name="environmentId")
def environment_id(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Environment this database belongs to.
"""
return pulumi.get(self, "environment_id")
@environment_id.setter
def environment_id(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "environment_id", value)
@_builtins.property
@pulumi.getter(name="externalPort")
def external_port(self) -> pulumi.Input[Optional[_builtins.int]]:
"""
Host port to expose the database on. Leave unset to keep the database reachable only from inside the Docker network.
"""
return pulumi.get(self, "external_port")
@external_port.setter
def external_port(self, value: pulumi.Input[Optional[_builtins.int]]):
pulumi.set(self, "external_port", value)
@_builtins.property
@pulumi.getter(name="healthCheckSwarm")
def health_check_swarm(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Docker Swarm health check configuration, as a JSON object.
"""
return pulumi.get(self, "health_check_swarm")
@health_check_swarm.setter
def health_check_swarm(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "health_check_swarm", value)
@_builtins.property
@pulumi.getter(name="labelsSwarm")
def labels_swarm(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Docker Swarm service labels, as a JSON object.
"""
return pulumi.get(self, "labels_swarm")
@labels_swarm.setter
def labels_swarm(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "labels_swarm", value)
@_builtins.property
@pulumi.getter(name="memoryLimit")
def memory_limit(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Hard memory limit, for example `512m`.
"""
return pulumi.get(self, "memory_limit")
@memory_limit.setter
def memory_limit(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "memory_limit", value)
@_builtins.property
@pulumi.getter(name="memoryReservation")
def memory_reservation(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Soft memory reservation, for example `256m`.
"""
return pulumi.get(self, "memory_reservation")
@memory_reservation.setter
def memory_reservation(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "memory_reservation", value)
@_builtins.property
@pulumi.getter(name="modeSwarm")
def mode_swarm(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Docker Swarm service mode, as a JSON object.
"""
return pulumi.get(self, "mode_swarm")
@mode_swarm.setter
def mode_swarm(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "mode_swarm", value)
@_builtins.property
@pulumi.getter
def name(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Display name of the database.
"""
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="networkIds")
def network_ids(self) -> pulumi.Input[Optional[Sequence[pulumi.Input[_builtins.str]]]]:
"""
IDs of additional Docker networks to attach.
"""
return pulumi.get(self, "network_ids")
@network_ids.setter
def network_ids(self, value: pulumi.Input[Optional[Sequence[pulumi.Input[_builtins.str]]]]):
pulumi.set(self, "network_ids", value)
@_builtins.property
@pulumi.getter(name="networkSwarm")
def network_swarm(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Docker Swarm network attachments, as a JSON array.
"""
return pulumi.get(self, "network_swarm")
@network_swarm.setter
def network_swarm(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "network_swarm", value)
@_builtins.property
@pulumi.getter(name="placementSwarm")
def placement_swarm(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Docker Swarm placement constraints, as a JSON object.
"""
return pulumi.get(self, "placement_swarm")
@placement_swarm.setter
def placement_swarm(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "placement_swarm", value)
@_builtins.property
@pulumi.getter
def replicas(self) -> pulumi.Input[Optional[_builtins.int]]:
"""
Number of replicas to run.
"""
return pulumi.get(self, "replicas")
@replicas.setter
def replicas(self, value: pulumi.Input[Optional[_builtins.int]]):
pulumi.set(self, "replicas", value)
@_builtins.property
@pulumi.getter(name="restartPolicySwarm")
def restart_policy_swarm(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Docker Swarm restart policy, as a JSON object.
"""
return pulumi.get(self, "restart_policy_swarm")
@restart_policy_swarm.setter
def restart_policy_swarm(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "restart_policy_swarm", value)
@_builtins.property
@pulumi.getter(name="rollbackConfigSwarm")
def rollback_config_swarm(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Docker Swarm rollback configuration, as a JSON object.
"""
return pulumi.get(self, "rollback_config_swarm")
@rollback_config_swarm.setter
def rollback_config_swarm(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "rollback_config_swarm", value)
@_builtins.property
@pulumi.getter(name="serverId")
def server_id(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Remote server to deploy 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)
@_builtins.property
@pulumi.getter(name="stopGracePeriodSwarm")
def stop_grace_period_swarm(self) -> pulumi.Input[Optional[_builtins.int]]:
"""
Grace period in nanoseconds before a container is killed.
"""
return pulumi.get(self, "stop_grace_period_swarm")
@stop_grace_period_swarm.setter
def stop_grace_period_swarm(self, value: pulumi.Input[Optional[_builtins.int]]):
pulumi.set(self, "stop_grace_period_swarm", value)
@_builtins.property
@pulumi.getter(name="ulimitsSwarm")
def ulimits_swarm(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Docker Swarm ulimits, as a JSON object.
"""
return pulumi.get(self, "ulimits_swarm")
@ulimits_swarm.setter
def ulimits_swarm(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "ulimits_swarm", value)
@_builtins.property
@pulumi.getter(name="updateConfigSwarm")
def update_config_swarm(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Docker Swarm rolling update configuration, as a JSON object.
"""
return pulumi.get(self, "update_config_swarm")
@update_config_swarm.setter
def update_config_swarm(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "update_config_swarm", value)
@pulumi.type_token("dokploy:index/postgres:Postgres")
class Postgres(pulumi.CustomResource):
@overload
def __init__(__self__,
resource_name: str,
opts: Optional[pulumi.ResourceOptions] = None,
app_name: pulumi.Input[Optional[_builtins.str]] = None,
args: pulumi.Input[Optional[Sequence[pulumi.Input[_builtins.str]]]] = None,
command: pulumi.Input[Optional[_builtins.str]] = None,
cpu_limit: pulumi.Input[Optional[_builtins.str]] = None,
cpu_reservation: pulumi.Input[Optional[_builtins.str]] = None,
database_name: pulumi.Input[Optional[_builtins.str]] = None,
database_password: pulumi.Input[Optional[_builtins.str]] = None,
database_user: pulumi.Input[Optional[_builtins.str]] = None,
description: pulumi.Input[Optional[_builtins.str]] = None,
detach_dokploy_network: pulumi.Input[Optional[_builtins.bool]] = None,
docker_image: pulumi.Input[Optional[_builtins.str]] = None,
endpoint_spec_swarm: pulumi.Input[Optional[_builtins.str]] = None,
env: pulumi.Input[Optional[_builtins.str]] = None,
environment_id: pulumi.Input[Optional[_builtins.str]] = None,
external_port: pulumi.Input[Optional[_builtins.int]] = None,
health_check_swarm: pulumi.Input[Optional[_builtins.str]] = None,
labels_swarm: pulumi.Input[Optional[_builtins.str]] = None,
memory_limit: pulumi.Input[Optional[_builtins.str]] = None,
memory_reservation: pulumi.Input[Optional[_builtins.str]] = None,
mode_swarm: pulumi.Input[Optional[_builtins.str]] = None,
name: pulumi.Input[Optional[_builtins.str]] = None,
network_ids: pulumi.Input[Optional[Sequence[pulumi.Input[_builtins.str]]]] = None,
network_swarm: pulumi.Input[Optional[_builtins.str]] = None,
placement_swarm: pulumi.Input[Optional[_builtins.str]] = None,
replicas: pulumi.Input[Optional[_builtins.int]] = None,
restart_policy_swarm: pulumi.Input[Optional[_builtins.str]] = None,
rollback_config_swarm: pulumi.Input[Optional[_builtins.str]] = None,
server_id: pulumi.Input[Optional[_builtins.str]] = None,
stop_grace_period_swarm: pulumi.Input[Optional[_builtins.int]] = None,
ulimits_swarm: pulumi.Input[Optional[_builtins.str]] = None,
update_config_swarm: pulumi.Input[Optional[_builtins.str]] = None,
__props__=None):
"""
A managed PostgreSQL instance running on Dokploy.
> Creating this resource provisions the service definition but does **not** start a deployment. Deploy it from the Dokploy UI or CLI.
> Credentials are 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.
:param pulumi.Input[_builtins.str] app_name: Unique Docker service name. Generated by Dokploy when omitted. Changing it forces a new database.
:param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] args: Arguments appended to the container command.
:param pulumi.Input[_builtins.str] command: Override the container entrypoint command.
:param pulumi.Input[_builtins.str] cpu_limit: Hard CPU limit, for example `1`.
:param pulumi.Input[_builtins.str] cpu_reservation: Soft CPU reservation, for example `0.5`.
:param pulumi.Input[_builtins.str] database_name: Name of the database to create.
:param pulumi.Input[_builtins.str] database_password: Password for the database user.
:param pulumi.Input[_builtins.str] database_user: Database user to create.
:param pulumi.Input[_builtins.str] description: Free-form description.
:param pulumi.Input[_builtins.bool] detach_dokploy_network: Detach the service from the shared `dokploy-network`.
:param pulumi.Input[_builtins.str] docker_image: PostgreSQL image to run, for example `postgres:16`.
:param pulumi.Input[_builtins.str] endpoint_spec_swarm: Docker Swarm endpoint specification, as a JSON object.
:param pulumi.Input[_builtins.str] env: Environment variables in `KEY=value` format, one per line.
:param pulumi.Input[_builtins.str] environment_id: Environment this database belongs to.
:param pulumi.Input[_builtins.int] external_port: Host port to expose the database on. Leave unset to keep the database reachable only from inside the Docker network.
:param pulumi.Input[_builtins.str] health_check_swarm: Docker Swarm health check configuration, as a JSON object.
:param pulumi.Input[_builtins.str] labels_swarm: Docker Swarm service labels, as a JSON object.
:param pulumi.Input[_builtins.str] memory_limit: Hard memory limit, for example `512m`.
:param pulumi.Input[_builtins.str] memory_reservation: Soft memory reservation, for example `256m`.
:param pulumi.Input[_builtins.str] mode_swarm: Docker Swarm service mode, as a JSON object.
:param pulumi.Input[_builtins.str] name: Display name of the database.
:param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] network_ids: IDs of additional Docker networks to attach.
:param pulumi.Input[_builtins.str] network_swarm: Docker Swarm network attachments, as a JSON array.
:param pulumi.Input[_builtins.str] placement_swarm: Docker Swarm placement constraints, as a JSON object.
:param pulumi.Input[_builtins.int] replicas: Number of replicas to run.
:param pulumi.Input[_builtins.str] restart_policy_swarm: Docker Swarm restart policy, as a JSON object.
:param pulumi.Input[_builtins.str] rollback_config_swarm: Docker Swarm rollback configuration, as a JSON object.
:param pulumi.Input[_builtins.str] server_id: Remote server to deploy on. Omit to use the Dokploy host itself.
:param pulumi.Input[_builtins.int] stop_grace_period_swarm: Grace period in nanoseconds before a container is killed.
:param pulumi.Input[_builtins.str] ulimits_swarm: Docker Swarm ulimits, as a JSON object.
:param pulumi.Input[_builtins.str] update_config_swarm: Docker Swarm rolling update configuration, as a JSON object.
"""
...
@overload
def __init__(__self__,
resource_name: str,
args: PostgresArgs,
opts: Optional[pulumi.ResourceOptions] = None):
"""
A managed PostgreSQL instance running on Dokploy.
> Creating this resource provisions the service definition but does **not** start a deployment. Deploy it from the Dokploy UI or CLI.
> Credentials are stored in Terraform state. Use a state backend with encryption at rest.
:param str resource_name: The name of the resource.
:param PostgresArgs 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(PostgresArgs, 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,
args: pulumi.Input[Optional[Sequence[pulumi.Input[_builtins.str]]]] = None,
command: pulumi.Input[Optional[_builtins.str]] = None,
cpu_limit: pulumi.Input[Optional[_builtins.str]] = None,
cpu_reservation: pulumi.Input[Optional[_builtins.str]] = None,
database_name: pulumi.Input[Optional[_builtins.str]] = None,
database_password: pulumi.Input[Optional[_builtins.str]] = None,
database_user: pulumi.Input[Optional[_builtins.str]] = None,
description: pulumi.Input[Optional[_builtins.str]] = None,
detach_dokploy_network: pulumi.Input[Optional[_builtins.bool]] = None,
docker_image: pulumi.Input[Optional[_builtins.str]] = None,
endpoint_spec_swarm: pulumi.Input[Optional[_builtins.str]] = None,
env: pulumi.Input[Optional[_builtins.str]] = None,
environment_id: pulumi.Input[Optional[_builtins.str]] = None,
external_port: pulumi.Input[Optional[_builtins.int]] = None,
health_check_swarm: pulumi.Input[Optional[_builtins.str]] = None,
labels_swarm: pulumi.Input[Optional[_builtins.str]] = None,
memory_limit: pulumi.Input[Optional[_builtins.str]] = None,
memory_reservation: pulumi.Input[Optional[_builtins.str]] = None,
mode_swarm: pulumi.Input[Optional[_builtins.str]] = None,
name: pulumi.Input[Optional[_builtins.str]] = None,
network_ids: pulumi.Input[Optional[Sequence[pulumi.Input[_builtins.str]]]] = None,
network_swarm: pulumi.Input[Optional[_builtins.str]] = None,
placement_swarm: pulumi.Input[Optional[_builtins.str]] = None,
replicas: pulumi.Input[Optional[_builtins.int]] = None,
restart_policy_swarm: pulumi.Input[Optional[_builtins.str]] = None,
rollback_config_swarm: pulumi.Input[Optional[_builtins.str]] = None,
server_id: pulumi.Input[Optional[_builtins.str]] = None,
stop_grace_period_swarm: pulumi.Input[Optional[_builtins.int]] = None,
ulimits_swarm: pulumi.Input[Optional[_builtins.str]] = None,
update_config_swarm: 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__ = PostgresArgs.__new__(PostgresArgs)
__props__.__dict__["app_name"] = app_name
__props__.__dict__["args"] = args
__props__.__dict__["command"] = command
__props__.__dict__["cpu_limit"] = cpu_limit
__props__.__dict__["cpu_reservation"] = cpu_reservation
if database_name is None and not opts.urn:
raise TypeError("Missing required property 'database_name'")
__props__.__dict__["database_name"] = database_name
if database_password is None and not opts.urn:
raise TypeError("Missing required property 'database_password'")
__props__.__dict__["database_password"] = None if database_password is None else pulumi.Output.secret(database_password)
if database_user is None and not opts.urn:
raise TypeError("Missing required property 'database_user'")
__props__.__dict__["database_user"] = database_user
__props__.__dict__["description"] = description
__props__.__dict__["detach_dokploy_network"] = detach_dokploy_network
if docker_image is None and not opts.urn:
raise TypeError("Missing required property 'docker_image'")
__props__.__dict__["docker_image"] = docker_image
__props__.__dict__["endpoint_spec_swarm"] = endpoint_spec_swarm
__props__.__dict__["env"] = env
if environment_id is None and not opts.urn:
raise TypeError("Missing required property 'environment_id'")
__props__.__dict__["environment_id"] = environment_id
__props__.__dict__["external_port"] = external_port
__props__.__dict__["health_check_swarm"] = health_check_swarm
__props__.__dict__["labels_swarm"] = labels_swarm
__props__.__dict__["memory_limit"] = memory_limit
__props__.__dict__["memory_reservation"] = memory_reservation
__props__.__dict__["mode_swarm"] = mode_swarm
__props__.__dict__["name"] = name
__props__.__dict__["network_ids"] = network_ids
__props__.__dict__["network_swarm"] = network_swarm
__props__.__dict__["placement_swarm"] = placement_swarm
__props__.__dict__["replicas"] = replicas
__props__.__dict__["restart_policy_swarm"] = restart_policy_swarm
__props__.__dict__["rollback_config_swarm"] = rollback_config_swarm
__props__.__dict__["server_id"] = server_id
__props__.__dict__["stop_grace_period_swarm"] = stop_grace_period_swarm
__props__.__dict__["ulimits_swarm"] = ulimits_swarm
__props__.__dict__["update_config_swarm"] = update_config_swarm
__props__.__dict__["application_status"] = None
__props__.__dict__["created_at"] = None
secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["databasePassword"])
opts = pulumi.ResourceOptions.merge(opts, secret_opts)
super(Postgres, __self__).__init__(
'dokploy:index/postgres:Postgres',
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_status: pulumi.Input[Optional[_builtins.str]] = None,
args: pulumi.Input[Optional[Sequence[pulumi.Input[_builtins.str]]]] = None,
command: pulumi.Input[Optional[_builtins.str]] = None,
cpu_limit: pulumi.Input[Optional[_builtins.str]] = None,
cpu_reservation: pulumi.Input[Optional[_builtins.str]] = None,
created_at: pulumi.Input[Optional[_builtins.str]] = None,
database_name: pulumi.Input[Optional[_builtins.str]] = None,
database_password: pulumi.Input[Optional[_builtins.str]] = None,
database_user: pulumi.Input[Optional[_builtins.str]] = None,
description: pulumi.Input[Optional[_builtins.str]] = None,
detach_dokploy_network: pulumi.Input[Optional[_builtins.bool]] = None,
docker_image: pulumi.Input[Optional[_builtins.str]] = None,
endpoint_spec_swarm: pulumi.Input[Optional[_builtins.str]] = None,
env: pulumi.Input[Optional[_builtins.str]] = None,
environment_id: pulumi.Input[Optional[_builtins.str]] = None,
external_port: pulumi.Input[Optional[_builtins.int]] = None,
health_check_swarm: pulumi.Input[Optional[_builtins.str]] = None,
labels_swarm: pulumi.Input[Optional[_builtins.str]] = None,
memory_limit: pulumi.Input[Optional[_builtins.str]] = None,
memory_reservation: pulumi.Input[Optional[_builtins.str]] = None,
mode_swarm: pulumi.Input[Optional[_builtins.str]] = None,
name: pulumi.Input[Optional[_builtins.str]] = None,
network_ids: pulumi.Input[Optional[Sequence[pulumi.Input[_builtins.str]]]] = None,
network_swarm: pulumi.Input[Optional[_builtins.str]] = None,
placement_swarm: pulumi.Input[Optional[_builtins.str]] = None,
replicas: pulumi.Input[Optional[_builtins.int]] = None,
restart_policy_swarm: pulumi.Input[Optional[_builtins.str]] = None,
rollback_config_swarm: pulumi.Input[Optional[_builtins.str]] = None,
server_id: pulumi.Input[Optional[_builtins.str]] = None,
stop_grace_period_swarm: pulumi.Input[Optional[_builtins.int]] = None,
ulimits_swarm: pulumi.Input[Optional[_builtins.str]] = None,
update_config_swarm: pulumi.Input[Optional[_builtins.str]] = None) -> 'Postgres':
"""
Get an existing Postgres 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: Unique Docker service name. Generated by Dokploy when omitted. Changing it forces a new database.
:param pulumi.Input[_builtins.str] application_status: Current status reported by Dokploy: `idle`, `running`, `done` or `error`.
:param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] args: Arguments appended to the container command.
:param pulumi.Input[_builtins.str] command: Override the container entrypoint command.
:param pulumi.Input[_builtins.str] cpu_limit: Hard CPU limit, for example `1`.
:param pulumi.Input[_builtins.str] cpu_reservation: Soft CPU reservation, for example `0.5`.
:param pulumi.Input[_builtins.str] created_at: RFC 3339 timestamp of when the database was created.
:param pulumi.Input[_builtins.str] database_name: Name of the database to create.
:param pulumi.Input[_builtins.str] database_password: Password for the database user.
:param pulumi.Input[_builtins.str] database_user: Database user to create.
:param pulumi.Input[_builtins.str] description: Free-form description.
:param pulumi.Input[_builtins.bool] detach_dokploy_network: Detach the service from the shared `dokploy-network`.
:param pulumi.Input[_builtins.str] docker_image: PostgreSQL image to run, for example `postgres:16`.
:param pulumi.Input[_builtins.str] endpoint_spec_swarm: Docker Swarm endpoint specification, as a JSON object.
:param pulumi.Input[_builtins.str] env: Environment variables in `KEY=value` format, one per line.
:param pulumi.Input[_builtins.str] environment_id: Environment this database belongs to.
:param pulumi.Input[_builtins.int] external_port: Host port to expose the database on. Leave unset to keep the database reachable only from inside the Docker network.
:param pulumi.Input[_builtins.str] health_check_swarm: Docker Swarm health check configuration, as a JSON object.
:param pulumi.Input[_builtins.str] labels_swarm: Docker Swarm service labels, as a JSON object.
:param pulumi.Input[_builtins.str] memory_limit: Hard memory limit, for example `512m`.
:param pulumi.Input[_builtins.str] memory_reservation: Soft memory reservation, for example `256m`.
:param pulumi.Input[_builtins.str] mode_swarm: Docker Swarm service mode, as a JSON object.
:param pulumi.Input[_builtins.str] name: Display name of the database.
:param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] network_ids: IDs of additional Docker networks to attach.
:param pulumi.Input[_builtins.str] network_swarm: Docker Swarm network attachments, as a JSON array.
:param pulumi.Input[_builtins.str] placement_swarm: Docker Swarm placement constraints, as a JSON object.
:param pulumi.Input[_builtins.int] replicas: Number of replicas to run.
:param pulumi.Input[_builtins.str] restart_policy_swarm: Docker Swarm restart policy, as a JSON object.
:param pulumi.Input[_builtins.str] rollback_config_swarm: Docker Swarm rollback configuration, as a JSON object.
:param pulumi.Input[_builtins.str] server_id: Remote server to deploy on. Omit to use the Dokploy host itself.
:param pulumi.Input[_builtins.int] stop_grace_period_swarm: Grace period in nanoseconds before a container is killed.
:param pulumi.Input[_builtins.str] ulimits_swarm: Docker Swarm ulimits, as a JSON object.
:param pulumi.Input[_builtins.str] update_config_swarm: Docker Swarm rolling update configuration, as a JSON object.
"""
opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
__props__ = _PostgresState.__new__(_PostgresState)
__props__.__dict__["app_name"] = app_name
__props__.__dict__["application_status"] = application_status
__props__.__dict__["args"] = args
__props__.__dict__["command"] = command
__props__.__dict__["cpu_limit"] = cpu_limit
__props__.__dict__["cpu_reservation"] = cpu_reservation
__props__.__dict__["created_at"] = created_at
__props__.__dict__["database_name"] = database_name
__props__.__dict__["database_password"] = database_password
__props__.__dict__["database_user"] = database_user
__props__.__dict__["description"] = description
__props__.__dict__["detach_dokploy_network"] = detach_dokploy_network
__props__.__dict__["docker_image"] = docker_image
__props__.__dict__["endpoint_spec_swarm"] = endpoint_spec_swarm
__props__.__dict__["env"] = env
__props__.__dict__["environment_id"] = environment_id
__props__.__dict__["external_port"] = external_port
__props__.__dict__["health_check_swarm"] = health_check_swarm
__props__.__dict__["labels_swarm"] = labels_swarm
__props__.__dict__["memory_limit"] = memory_limit
__props__.__dict__["memory_reservation"] = memory_reservation
__props__.__dict__["mode_swarm"] = mode_swarm
__props__.__dict__["name"] = name
__props__.__dict__["network_ids"] = network_ids
__props__.__dict__["network_swarm"] = network_swarm
__props__.__dict__["placement_swarm"] = placement_swarm
__props__.__dict__["replicas"] = replicas
__props__.__dict__["restart_policy_swarm"] = restart_policy_swarm
__props__.__dict__["rollback_config_swarm"] = rollback_config_swarm
__props__.__dict__["server_id"] = server_id
__props__.__dict__["stop_grace_period_swarm"] = stop_grace_period_swarm
__props__.__dict__["ulimits_swarm"] = ulimits_swarm
__props__.__dict__["update_config_swarm"] = update_config_swarm
return Postgres(resource_name, opts=opts, __props__=__props__)
@_builtins.property
@pulumi.getter(name="appName")
def app_name(self) -> pulumi.Output[_builtins.str]:
"""
Unique Docker service name. Generated by Dokploy when omitted. Changing it forces a new database.
"""
return pulumi.get(self, "app_name")
@_builtins.property
@pulumi.getter(name="applicationStatus")
def application_status(self) -> pulumi.Output[_builtins.str]:
"""
Current status reported by Dokploy: `idle`, `running`, `done` or `error`.
"""
return pulumi.get(self, "application_status")
@_builtins.property
@pulumi.getter
def args(self) -> pulumi.Output[Sequence[_builtins.str]]:
"""
Arguments appended to the container command.
"""
return pulumi.get(self, "args")
@_builtins.property
@pulumi.getter
def command(self) -> pulumi.Output[Optional[_builtins.str]]:
"""
Override the container entrypoint command.
"""
return pulumi.get(self, "command")
@_builtins.property
@pulumi.getter(name="cpuLimit")
def cpu_limit(self) -> pulumi.Output[Optional[_builtins.str]]:
"""
Hard CPU limit, for example `1`.
"""
return pulumi.get(self, "cpu_limit")
@_builtins.property
@pulumi.getter(name="cpuReservation")
def cpu_reservation(self) -> pulumi.Output[Optional[_builtins.str]]:
"""
Soft CPU reservation, for example `0.5`.
"""
return pulumi.get(self, "cpu_reservation")
@_builtins.property
@pulumi.getter(name="createdAt")
def created_at(self) -> pulumi.Output[_builtins.str]:
"""
RFC 3339 timestamp of when the database was created.
"""
return pulumi.get(self, "created_at")
@_builtins.property
@pulumi.getter(name="databaseName")
def database_name(self) -> pulumi.Output[_builtins.str]:
"""
Name of the database to create.
"""
return pulumi.get(self, "database_name")
@_builtins.property
@pulumi.getter(name="databasePassword")
def database_password(self) -> pulumi.Output[_builtins.str]:
"""
Password for the database user.
"""
return pulumi.get(self, "database_password")
@_builtins.property
@pulumi.getter(name="databaseUser")
def database_user(self) -> pulumi.Output[_builtins.str]:
"""
Database user to create.
"""
return pulumi.get(self, "database_user")
@_builtins.property
@pulumi.getter
def description(self) -> pulumi.Output[Optional[_builtins.str]]:
"""
Free-form description.
"""
return pulumi.get(self, "description")
@_builtins.property
@pulumi.getter(name="detachDokployNetwork")
def detach_dokploy_network(self) -> pulumi.Output[_builtins.bool]:
"""
Detach the service from the shared `dokploy-network`.
"""
return pulumi.get(self, "detach_dokploy_network")
@_builtins.property
@pulumi.getter(name="dockerImage")
def docker_image(self) -> pulumi.Output[_builtins.str]:
"""
PostgreSQL image to run, for example `postgres:16`.
"""
return pulumi.get(self, "docker_image")
@_builtins.property
@pulumi.getter(name="endpointSpecSwarm")
def endpoint_spec_swarm(self) -> pulumi.Output[Optional[_builtins.str]]:
"""
Docker Swarm endpoint specification, as a JSON object.
"""
return pulumi.get(self, "endpoint_spec_swarm")
@_builtins.property
@pulumi.getter
def env(self) -> pulumi.Output[Optional[_builtins.str]]:
"""
Environment variables in `KEY=value` format, one per line.
"""
return pulumi.get(self, "env")
@_builtins.property
@pulumi.getter(name="environmentId")
def environment_id(self) -> pulumi.Output[_builtins.str]:
"""
Environment this database belongs to.
"""
return pulumi.get(self, "environment_id")
@_builtins.property
@pulumi.getter(name="externalPort")
def external_port(self) -> pulumi.Output[Optional[_builtins.int]]:
"""
Host port to expose the database on. Leave unset to keep the database reachable only from inside the Docker network.
"""
return pulumi.get(self, "external_port")
@_builtins.property
@pulumi.getter(name="healthCheckSwarm")
def health_check_swarm(self) -> pulumi.Output[Optional[_builtins.str]]:
"""
Docker Swarm health check configuration, as a JSON object.
"""
return pulumi.get(self, "health_check_swarm")
@_builtins.property
@pulumi.getter(name="labelsSwarm")
def labels_swarm(self) -> pulumi.Output[Optional[_builtins.str]]:
"""
Docker Swarm service labels, as a JSON object.
"""
return pulumi.get(self, "labels_swarm")
@_builtins.property
@pulumi.getter(name="memoryLimit")
def memory_limit(self) -> pulumi.Output[Optional[_builtins.str]]:
"""
Hard memory limit, for example `512m`.
"""
return pulumi.get(self, "memory_limit")
@_builtins.property
@pulumi.getter(name="memoryReservation")
def memory_reservation(self) -> pulumi.Output[Optional[_builtins.str]]:
"""
Soft memory reservation, for example `256m`.
"""
return pulumi.get(self, "memory_reservation")
@_builtins.property
@pulumi.getter(name="modeSwarm")
def mode_swarm(self) -> pulumi.Output[Optional[_builtins.str]]:
"""
Docker Swarm service mode, as a JSON object.
"""
return pulumi.get(self, "mode_swarm")
@_builtins.property
@pulumi.getter
def name(self) -> pulumi.Output[_builtins.str]:
"""
Display name of the database.
"""
return pulumi.get(self, "name")
@_builtins.property
@pulumi.getter(name="networkIds")
def network_ids(self) -> pulumi.Output[Sequence[_builtins.str]]:
"""
IDs of additional Docker networks to attach.
"""
return pulumi.get(self, "network_ids")
@_builtins.property
@pulumi.getter(name="networkSwarm")
def network_swarm(self) -> pulumi.Output[Optional[_builtins.str]]:
"""
Docker Swarm network attachments, as a JSON array.
"""
return pulumi.get(self, "network_swarm")
@_builtins.property
@pulumi.getter(name="placementSwarm")
def placement_swarm(self) -> pulumi.Output[Optional[_builtins.str]]:
"""
Docker Swarm placement constraints, as a JSON object.
"""
return pulumi.get(self, "placement_swarm")
@_builtins.property
@pulumi.getter
def replicas(self) -> pulumi.Output[_builtins.int]:
"""
Number of replicas to run.
"""
return pulumi.get(self, "replicas")
@_builtins.property
@pulumi.getter(name="restartPolicySwarm")
def restart_policy_swarm(self) -> pulumi.Output[Optional[_builtins.str]]:
"""
Docker Swarm restart policy, as a JSON object.
"""
return pulumi.get(self, "restart_policy_swarm")
@_builtins.property
@pulumi.getter(name="rollbackConfigSwarm")
def rollback_config_swarm(self) -> pulumi.Output[Optional[_builtins.str]]:
"""
Docker Swarm rollback configuration, as a JSON object.
"""
return pulumi.get(self, "rollback_config_swarm")
@_builtins.property
@pulumi.getter(name="serverId")
def server_id(self) -> pulumi.Output[Optional[_builtins.str]]:
"""
Remote server to deploy on. Omit to use the Dokploy host itself.
"""
return pulumi.get(self, "server_id")
@_builtins.property
@pulumi.getter(name="stopGracePeriodSwarm")
def stop_grace_period_swarm(self) -> pulumi.Output[Optional[_builtins.int]]:
"""
Grace period in nanoseconds before a container is killed.
"""
return pulumi.get(self, "stop_grace_period_swarm")
@_builtins.property
@pulumi.getter(name="ulimitsSwarm")
def ulimits_swarm(self) -> pulumi.Output[Optional[_builtins.str]]:
"""
Docker Swarm ulimits, as a JSON object.
"""
return pulumi.get(self, "ulimits_swarm")
@_builtins.property
@pulumi.getter(name="updateConfigSwarm")
def update_config_swarm(self) -> pulumi.Output[Optional[_builtins.str]]:
"""
Docker Swarm rolling update configuration, as a JSON object.
"""
return pulumi.get(self, "update_config_swarm")