Files
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

1042 lines
46 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__ = ['VolumeBackupArgs', 'VolumeBackup']
@pulumi.input_type
class VolumeBackupArgs:
def __init__(__self__, *,
cron_expression: pulumi.Input[_builtins.str],
destination_id: pulumi.Input[_builtins.str],
prefix: pulumi.Input[_builtins.str],
volume_name: 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,
enabled: pulumi.Input[Optional[_builtins.bool]] = None,
keep_latest_count: pulumi.Input[Optional[_builtins.int]] = None,
libsql_id: pulumi.Input[Optional[_builtins.str]] = None,
mariadb_id: pulumi.Input[Optional[_builtins.str]] = None,
mongo_id: pulumi.Input[Optional[_builtins.str]] = None,
mysql_id: pulumi.Input[Optional[_builtins.str]] = None,
name: pulumi.Input[Optional[_builtins.str]] = None,
postgres_id: pulumi.Input[Optional[_builtins.str]] = None,
redis_id: pulumi.Input[Optional[_builtins.str]] = None,
service_name: pulumi.Input[Optional[_builtins.str]] = None,
service_type: pulumi.Input[Optional[_builtins.str]] = None,
turn_off: pulumi.Input[Optional[_builtins.bool]] = None):
"""
The set of arguments for constructing a VolumeBackup resource.
:param pulumi.Input[_builtins.str] cron_expression: Standard five-field cron expression, for example `0 4 * * *`.
:param pulumi.Input[_builtins.str] destination_id: Backup destination (S3-compatible bucket) to upload to.
:param pulumi.Input[_builtins.str] prefix: Path prefix inside the destination bucket, for example `backups/shop/`.
:param pulumi.Input[_builtins.str] volume_name: Name of the Docker volume to back up.
:param pulumi.Input[_builtins.str] app_name: Docker service name that owns the volume. Derived by Dokploy when omitted.
:param pulumi.Input[_builtins.str] application_id: Application that owns the volume.
:param pulumi.Input[_builtins.str] compose_id: Compose stack that owns the volume.
:param pulumi.Input[_builtins.bool] enabled: Whether the backup schedule is active.
:param pulumi.Input[_builtins.int] keep_latest_count: Number of backups to retain. Older ones are pruned.
:param pulumi.Input[_builtins.str] libsql_id: libSQL instance that owns the volume.
:param pulumi.Input[_builtins.str] mariadb_id: MariaDB instance that owns the volume.
:param pulumi.Input[_builtins.str] mongo_id: MongoDB instance that owns the volume.
:param pulumi.Input[_builtins.str] mysql_id: MySQL instance that owns the volume.
:param pulumi.Input[_builtins.str] name: Display name of the backup job.
:param pulumi.Input[_builtins.str] postgres_id: PostgreSQL instance that owns the volume.
:param pulumi.Input[_builtins.str] redis_id: Redis instance that owns the volume.
:param pulumi.Input[_builtins.str] service_name: Service inside a Compose stack that owns the volume.
:param pulumi.Input[_builtins.str] service_type: The kind of service that owns the volume. Valid values: `application`, `postgres`, `mysql`, `mariadb`, `mongo`, `redis`, `compose`, `libsql`. Defaults to `application`.
:param pulumi.Input[_builtins.bool] turn_off: Stop the service while the backup runs. Slower, but guarantees a consistent copy of data that is being written to.
"""
pulumi.set(__self__, "cron_expression", cron_expression)
pulumi.set(__self__, "destination_id", destination_id)
pulumi.set(__self__, "prefix", prefix)
pulumi.set(__self__, "volume_name", volume_name)
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 enabled is not None:
pulumi.set(__self__, "enabled", enabled)
if keep_latest_count is not None:
pulumi.set(__self__, "keep_latest_count", keep_latest_count)
if libsql_id is not None:
pulumi.set(__self__, "libsql_id", libsql_id)
if mariadb_id is not None:
pulumi.set(__self__, "mariadb_id", mariadb_id)
if mongo_id is not None:
pulumi.set(__self__, "mongo_id", mongo_id)
if mysql_id is not None:
pulumi.set(__self__, "mysql_id", mysql_id)
if name is not None:
pulumi.set(__self__, "name", name)
if postgres_id is not None:
pulumi.set(__self__, "postgres_id", postgres_id)
if redis_id is not None:
pulumi.set(__self__, "redis_id", redis_id)
if service_name is not None:
pulumi.set(__self__, "service_name", service_name)
if service_type is not None:
pulumi.set(__self__, "service_type", service_type)
if turn_off is not None:
pulumi.set(__self__, "turn_off", turn_off)
@_builtins.property
@pulumi.getter(name="cronExpression")
def cron_expression(self) -> pulumi.Input[_builtins.str]:
"""
Standard five-field cron expression, for example `0 4 * * *`.
"""
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="destinationId")
def destination_id(self) -> pulumi.Input[_builtins.str]:
"""
Backup destination (S3-compatible bucket) to upload to.
"""
return pulumi.get(self, "destination_id")
@destination_id.setter
def destination_id(self, value: pulumi.Input[_builtins.str]):
pulumi.set(self, "destination_id", value)
@_builtins.property
@pulumi.getter
def prefix(self) -> pulumi.Input[_builtins.str]:
"""
Path prefix inside the destination bucket, for example `backups/shop/`.
"""
return pulumi.get(self, "prefix")
@prefix.setter
def prefix(self, value: pulumi.Input[_builtins.str]):
pulumi.set(self, "prefix", value)
@_builtins.property
@pulumi.getter(name="volumeName")
def volume_name(self) -> pulumi.Input[_builtins.str]:
"""
Name of the Docker volume to back up.
"""
return pulumi.get(self, "volume_name")
@volume_name.setter
def volume_name(self, value: pulumi.Input[_builtins.str]):
pulumi.set(self, "volume_name", value)
@_builtins.property
@pulumi.getter(name="appName")
def app_name(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Docker service name that owns the volume. 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 that owns the volume.
"""
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 that owns the volume.
"""
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 enabled(self) -> pulumi.Input[Optional[_builtins.bool]]:
"""
Whether the backup 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(name="keepLatestCount")
def keep_latest_count(self) -> pulumi.Input[Optional[_builtins.int]]:
"""
Number of backups to retain. Older ones are pruned.
"""
return pulumi.get(self, "keep_latest_count")
@keep_latest_count.setter
def keep_latest_count(self, value: pulumi.Input[Optional[_builtins.int]]):
pulumi.set(self, "keep_latest_count", value)
@_builtins.property
@pulumi.getter(name="libsqlId")
def libsql_id(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
libSQL instance that owns the volume.
"""
return pulumi.get(self, "libsql_id")
@libsql_id.setter
def libsql_id(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "libsql_id", value)
@_builtins.property
@pulumi.getter(name="mariadbId")
def mariadb_id(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
MariaDB instance that owns the volume.
"""
return pulumi.get(self, "mariadb_id")
@mariadb_id.setter
def mariadb_id(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "mariadb_id", value)
@_builtins.property
@pulumi.getter(name="mongoId")
def mongo_id(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
MongoDB instance that owns the volume.
"""
return pulumi.get(self, "mongo_id")
@mongo_id.setter
def mongo_id(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "mongo_id", value)
@_builtins.property
@pulumi.getter(name="mysqlId")
def mysql_id(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
MySQL instance that owns the volume.
"""
return pulumi.get(self, "mysql_id")
@mysql_id.setter
def mysql_id(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "mysql_id", value)
@_builtins.property
@pulumi.getter
def name(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Display name of the backup job.
"""
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="postgresId")
def postgres_id(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
PostgreSQL instance that owns the volume.
"""
return pulumi.get(self, "postgres_id")
@postgres_id.setter
def postgres_id(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "postgres_id", value)
@_builtins.property
@pulumi.getter(name="redisId")
def redis_id(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Redis instance that owns the volume.
"""
return pulumi.get(self, "redis_id")
@redis_id.setter
def redis_id(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "redis_id", value)
@_builtins.property
@pulumi.getter(name="serviceName")
def service_name(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Service inside a Compose stack that owns the volume.
"""
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="serviceType")
def service_type(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
The kind of service that owns the volume. Valid values: `application`, `postgres`, `mysql`, `mariadb`, `mongo`, `redis`, `compose`, `libsql`. Defaults to `application`.
"""
return pulumi.get(self, "service_type")
@service_type.setter
def service_type(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "service_type", value)
@_builtins.property
@pulumi.getter(name="turnOff")
def turn_off(self) -> pulumi.Input[Optional[_builtins.bool]]:
"""
Stop the service while the backup runs. Slower, but guarantees a consistent copy of data that is being written to.
"""
return pulumi.get(self, "turn_off")
@turn_off.setter
def turn_off(self, value: pulumi.Input[Optional[_builtins.bool]]):
pulumi.set(self, "turn_off", value)
@pulumi.input_type
class _VolumeBackupState:
def __init__(__self__, *,
app_name: pulumi.Input[Optional[_builtins.str]] = None,
application_id: 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,
destination_id: pulumi.Input[Optional[_builtins.str]] = None,
enabled: pulumi.Input[Optional[_builtins.bool]] = None,
keep_latest_count: pulumi.Input[Optional[_builtins.int]] = None,
libsql_id: pulumi.Input[Optional[_builtins.str]] = None,
mariadb_id: pulumi.Input[Optional[_builtins.str]] = None,
mongo_id: pulumi.Input[Optional[_builtins.str]] = None,
mysql_id: pulumi.Input[Optional[_builtins.str]] = None,
name: pulumi.Input[Optional[_builtins.str]] = None,
postgres_id: pulumi.Input[Optional[_builtins.str]] = None,
prefix: pulumi.Input[Optional[_builtins.str]] = None,
redis_id: pulumi.Input[Optional[_builtins.str]] = None,
service_name: pulumi.Input[Optional[_builtins.str]] = None,
service_type: pulumi.Input[Optional[_builtins.str]] = None,
turn_off: pulumi.Input[Optional[_builtins.bool]] = None,
volume_name: pulumi.Input[Optional[_builtins.str]] = None):
"""
Input properties used for looking up and filtering VolumeBackup resources.
:param pulumi.Input[_builtins.str] app_name: Docker service name that owns the volume. Derived by Dokploy when omitted.
:param pulumi.Input[_builtins.str] application_id: Application that owns the volume.
:param pulumi.Input[_builtins.str] compose_id: Compose stack that owns the volume.
:param pulumi.Input[_builtins.str] created_at: RFC 3339 timestamp of when the backup job was created.
:param pulumi.Input[_builtins.str] cron_expression: Standard five-field cron expression, for example `0 4 * * *`.
:param pulumi.Input[_builtins.str] destination_id: Backup destination (S3-compatible bucket) to upload to.
:param pulumi.Input[_builtins.bool] enabled: Whether the backup schedule is active.
:param pulumi.Input[_builtins.int] keep_latest_count: Number of backups to retain. Older ones are pruned.
:param pulumi.Input[_builtins.str] libsql_id: libSQL instance that owns the volume.
:param pulumi.Input[_builtins.str] mariadb_id: MariaDB instance that owns the volume.
:param pulumi.Input[_builtins.str] mongo_id: MongoDB instance that owns the volume.
:param pulumi.Input[_builtins.str] mysql_id: MySQL instance that owns the volume.
:param pulumi.Input[_builtins.str] name: Display name of the backup job.
:param pulumi.Input[_builtins.str] postgres_id: PostgreSQL instance that owns the volume.
:param pulumi.Input[_builtins.str] prefix: Path prefix inside the destination bucket, for example `backups/shop/`.
:param pulumi.Input[_builtins.str] redis_id: Redis instance that owns the volume.
:param pulumi.Input[_builtins.str] service_name: Service inside a Compose stack that owns the volume.
:param pulumi.Input[_builtins.str] service_type: The kind of service that owns the volume. Valid values: `application`, `postgres`, `mysql`, `mariadb`, `mongo`, `redis`, `compose`, `libsql`. Defaults to `application`.
:param pulumi.Input[_builtins.bool] turn_off: Stop the service while the backup runs. Slower, but guarantees a consistent copy of data that is being written to.
:param pulumi.Input[_builtins.str] volume_name: Name of the Docker volume to back up.
"""
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 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 destination_id is not None:
pulumi.set(__self__, "destination_id", destination_id)
if enabled is not None:
pulumi.set(__self__, "enabled", enabled)
if keep_latest_count is not None:
pulumi.set(__self__, "keep_latest_count", keep_latest_count)
if libsql_id is not None:
pulumi.set(__self__, "libsql_id", libsql_id)
if mariadb_id is not None:
pulumi.set(__self__, "mariadb_id", mariadb_id)
if mongo_id is not None:
pulumi.set(__self__, "mongo_id", mongo_id)
if mysql_id is not None:
pulumi.set(__self__, "mysql_id", mysql_id)
if name is not None:
pulumi.set(__self__, "name", name)
if postgres_id is not None:
pulumi.set(__self__, "postgres_id", postgres_id)
if prefix is not None:
pulumi.set(__self__, "prefix", prefix)
if redis_id is not None:
pulumi.set(__self__, "redis_id", redis_id)
if service_name is not None:
pulumi.set(__self__, "service_name", service_name)
if service_type is not None:
pulumi.set(__self__, "service_type", service_type)
if turn_off is not None:
pulumi.set(__self__, "turn_off", turn_off)
if volume_name is not None:
pulumi.set(__self__, "volume_name", volume_name)
@_builtins.property
@pulumi.getter(name="appName")
def app_name(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Docker service name that owns the volume. 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 that owns the volume.
"""
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 that owns the volume.
"""
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 backup job 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 4 * * *`.
"""
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(name="destinationId")
def destination_id(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Backup destination (S3-compatible bucket) to upload to.
"""
return pulumi.get(self, "destination_id")
@destination_id.setter
def destination_id(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "destination_id", value)
@_builtins.property
@pulumi.getter
def enabled(self) -> pulumi.Input[Optional[_builtins.bool]]:
"""
Whether the backup 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(name="keepLatestCount")
def keep_latest_count(self) -> pulumi.Input[Optional[_builtins.int]]:
"""
Number of backups to retain. Older ones are pruned.
"""
return pulumi.get(self, "keep_latest_count")
@keep_latest_count.setter
def keep_latest_count(self, value: pulumi.Input[Optional[_builtins.int]]):
pulumi.set(self, "keep_latest_count", value)
@_builtins.property
@pulumi.getter(name="libsqlId")
def libsql_id(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
libSQL instance that owns the volume.
"""
return pulumi.get(self, "libsql_id")
@libsql_id.setter
def libsql_id(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "libsql_id", value)
@_builtins.property
@pulumi.getter(name="mariadbId")
def mariadb_id(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
MariaDB instance that owns the volume.
"""
return pulumi.get(self, "mariadb_id")
@mariadb_id.setter
def mariadb_id(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "mariadb_id", value)
@_builtins.property
@pulumi.getter(name="mongoId")
def mongo_id(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
MongoDB instance that owns the volume.
"""
return pulumi.get(self, "mongo_id")
@mongo_id.setter
def mongo_id(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "mongo_id", value)
@_builtins.property
@pulumi.getter(name="mysqlId")
def mysql_id(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
MySQL instance that owns the volume.
"""
return pulumi.get(self, "mysql_id")
@mysql_id.setter
def mysql_id(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "mysql_id", value)
@_builtins.property
@pulumi.getter
def name(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Display name of the backup job.
"""
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="postgresId")
def postgres_id(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
PostgreSQL instance that owns the volume.
"""
return pulumi.get(self, "postgres_id")
@postgres_id.setter
def postgres_id(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "postgres_id", value)
@_builtins.property
@pulumi.getter
def prefix(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Path prefix inside the destination bucket, for example `backups/shop/`.
"""
return pulumi.get(self, "prefix")
@prefix.setter
def prefix(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "prefix", value)
@_builtins.property
@pulumi.getter(name="redisId")
def redis_id(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Redis instance that owns the volume.
"""
return pulumi.get(self, "redis_id")
@redis_id.setter
def redis_id(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "redis_id", value)
@_builtins.property
@pulumi.getter(name="serviceName")
def service_name(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Service inside a Compose stack that owns the volume.
"""
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="serviceType")
def service_type(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
The kind of service that owns the volume. Valid values: `application`, `postgres`, `mysql`, `mariadb`, `mongo`, `redis`, `compose`, `libsql`. Defaults to `application`.
"""
return pulumi.get(self, "service_type")
@service_type.setter
def service_type(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "service_type", value)
@_builtins.property
@pulumi.getter(name="turnOff")
def turn_off(self) -> pulumi.Input[Optional[_builtins.bool]]:
"""
Stop the service while the backup runs. Slower, but guarantees a consistent copy of data that is being written to.
"""
return pulumi.get(self, "turn_off")
@turn_off.setter
def turn_off(self, value: pulumi.Input[Optional[_builtins.bool]]):
pulumi.set(self, "turn_off", value)
@_builtins.property
@pulumi.getter(name="volumeName")
def volume_name(self) -> pulumi.Input[Optional[_builtins.str]]:
"""
Name of the Docker volume to back up.
"""
return pulumi.get(self, "volume_name")
@volume_name.setter
def volume_name(self, value: pulumi.Input[Optional[_builtins.str]]):
pulumi.set(self, "volume_name", value)
@pulumi.type_token("dokploy:index/volumeBackup:VolumeBackup")
class VolumeBackup(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,
compose_id: pulumi.Input[Optional[_builtins.str]] = None,
cron_expression: pulumi.Input[Optional[_builtins.str]] = None,
destination_id: pulumi.Input[Optional[_builtins.str]] = None,
enabled: pulumi.Input[Optional[_builtins.bool]] = None,
keep_latest_count: pulumi.Input[Optional[_builtins.int]] = None,
libsql_id: pulumi.Input[Optional[_builtins.str]] = None,
mariadb_id: pulumi.Input[Optional[_builtins.str]] = None,
mongo_id: pulumi.Input[Optional[_builtins.str]] = None,
mysql_id: pulumi.Input[Optional[_builtins.str]] = None,
name: pulumi.Input[Optional[_builtins.str]] = None,
postgres_id: pulumi.Input[Optional[_builtins.str]] = None,
prefix: pulumi.Input[Optional[_builtins.str]] = None,
redis_id: pulumi.Input[Optional[_builtins.str]] = None,
service_name: pulumi.Input[Optional[_builtins.str]] = None,
service_type: pulumi.Input[Optional[_builtins.str]] = None,
turn_off: pulumi.Input[Optional[_builtins.bool]] = None,
volume_name: pulumi.Input[Optional[_builtins.str]] = None,
__props__=None):
"""
A scheduled backup of a Docker volume to a configured `Destination`.
This is the counterpart to a `Mount` with `type = "volume"`: the mount gives the volume a stable name, and this resource copies its contents off the host on a schedule.
Set exactly one of the `*_id` attributes to say which service owns the volume.
: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 that owns the volume. Derived by Dokploy when omitted.
:param pulumi.Input[_builtins.str] application_id: Application that owns the volume.
:param pulumi.Input[_builtins.str] compose_id: Compose stack that owns the volume.
:param pulumi.Input[_builtins.str] cron_expression: Standard five-field cron expression, for example `0 4 * * *`.
:param pulumi.Input[_builtins.str] destination_id: Backup destination (S3-compatible bucket) to upload to.
:param pulumi.Input[_builtins.bool] enabled: Whether the backup schedule is active.
:param pulumi.Input[_builtins.int] keep_latest_count: Number of backups to retain. Older ones are pruned.
:param pulumi.Input[_builtins.str] libsql_id: libSQL instance that owns the volume.
:param pulumi.Input[_builtins.str] mariadb_id: MariaDB instance that owns the volume.
:param pulumi.Input[_builtins.str] mongo_id: MongoDB instance that owns the volume.
:param pulumi.Input[_builtins.str] mysql_id: MySQL instance that owns the volume.
:param pulumi.Input[_builtins.str] name: Display name of the backup job.
:param pulumi.Input[_builtins.str] postgres_id: PostgreSQL instance that owns the volume.
:param pulumi.Input[_builtins.str] prefix: Path prefix inside the destination bucket, for example `backups/shop/`.
:param pulumi.Input[_builtins.str] redis_id: Redis instance that owns the volume.
:param pulumi.Input[_builtins.str] service_name: Service inside a Compose stack that owns the volume.
:param pulumi.Input[_builtins.str] service_type: The kind of service that owns the volume. Valid values: `application`, `postgres`, `mysql`, `mariadb`, `mongo`, `redis`, `compose`, `libsql`. Defaults to `application`.
:param pulumi.Input[_builtins.bool] turn_off: Stop the service while the backup runs. Slower, but guarantees a consistent copy of data that is being written to.
:param pulumi.Input[_builtins.str] volume_name: Name of the Docker volume to back up.
"""
...
@overload
def __init__(__self__,
resource_name: str,
args: VolumeBackupArgs,
opts: Optional[pulumi.ResourceOptions] = None):
"""
A scheduled backup of a Docker volume to a configured `Destination`.
This is the counterpart to a `Mount` with `type = "volume"`: the mount gives the volume a stable name, and this resource copies its contents off the host on a schedule.
Set exactly one of the `*_id` attributes to say which service owns the volume.
:param str resource_name: The name of the resource.
:param VolumeBackupArgs 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(VolumeBackupArgs, 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,
compose_id: pulumi.Input[Optional[_builtins.str]] = None,
cron_expression: pulumi.Input[Optional[_builtins.str]] = None,
destination_id: pulumi.Input[Optional[_builtins.str]] = None,
enabled: pulumi.Input[Optional[_builtins.bool]] = None,
keep_latest_count: pulumi.Input[Optional[_builtins.int]] = None,
libsql_id: pulumi.Input[Optional[_builtins.str]] = None,
mariadb_id: pulumi.Input[Optional[_builtins.str]] = None,
mongo_id: pulumi.Input[Optional[_builtins.str]] = None,
mysql_id: pulumi.Input[Optional[_builtins.str]] = None,
name: pulumi.Input[Optional[_builtins.str]] = None,
postgres_id: pulumi.Input[Optional[_builtins.str]] = None,
prefix: pulumi.Input[Optional[_builtins.str]] = None,
redis_id: pulumi.Input[Optional[_builtins.str]] = None,
service_name: pulumi.Input[Optional[_builtins.str]] = None,
service_type: pulumi.Input[Optional[_builtins.str]] = None,
turn_off: pulumi.Input[Optional[_builtins.bool]] = 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):
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__ = VolumeBackupArgs.__new__(VolumeBackupArgs)
__props__.__dict__["app_name"] = app_name
__props__.__dict__["application_id"] = application_id
__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
if destination_id is None and not opts.urn:
raise TypeError("Missing required property 'destination_id'")
__props__.__dict__["destination_id"] = destination_id
__props__.__dict__["enabled"] = enabled
__props__.__dict__["keep_latest_count"] = keep_latest_count
__props__.__dict__["libsql_id"] = libsql_id
__props__.__dict__["mariadb_id"] = mariadb_id
__props__.__dict__["mongo_id"] = mongo_id
__props__.__dict__["mysql_id"] = mysql_id
__props__.__dict__["name"] = name
__props__.__dict__["postgres_id"] = postgres_id
if prefix is None and not opts.urn:
raise TypeError("Missing required property 'prefix'")
__props__.__dict__["prefix"] = prefix
__props__.__dict__["redis_id"] = redis_id
__props__.__dict__["service_name"] = service_name
__props__.__dict__["service_type"] = service_type
__props__.__dict__["turn_off"] = turn_off
if volume_name is None and not opts.urn:
raise TypeError("Missing required property 'volume_name'")
__props__.__dict__["volume_name"] = volume_name
__props__.__dict__["created_at"] = None
super(VolumeBackup, __self__).__init__(
'dokploy:index/volumeBackup:VolumeBackup',
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,
compose_id: pulumi.Input[Optional[_builtins.str]] = None,
created_at: pulumi.Input[Optional[_builtins.str]] = None,
cron_expression: pulumi.Input[Optional[_builtins.str]] = None,
destination_id: pulumi.Input[Optional[_builtins.str]] = None,
enabled: pulumi.Input[Optional[_builtins.bool]] = None,
keep_latest_count: pulumi.Input[Optional[_builtins.int]] = None,
libsql_id: pulumi.Input[Optional[_builtins.str]] = None,
mariadb_id: pulumi.Input[Optional[_builtins.str]] = None,
mongo_id: pulumi.Input[Optional[_builtins.str]] = None,
mysql_id: pulumi.Input[Optional[_builtins.str]] = None,
name: pulumi.Input[Optional[_builtins.str]] = None,
postgres_id: pulumi.Input[Optional[_builtins.str]] = None,
prefix: pulumi.Input[Optional[_builtins.str]] = None,
redis_id: pulumi.Input[Optional[_builtins.str]] = None,
service_name: pulumi.Input[Optional[_builtins.str]] = None,
service_type: pulumi.Input[Optional[_builtins.str]] = None,
turn_off: pulumi.Input[Optional[_builtins.bool]] = None,
volume_name: pulumi.Input[Optional[_builtins.str]] = None) -> 'VolumeBackup':
"""
Get an existing VolumeBackup 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 that owns the volume. Derived by Dokploy when omitted.
:param pulumi.Input[_builtins.str] application_id: Application that owns the volume.
:param pulumi.Input[_builtins.str] compose_id: Compose stack that owns the volume.
:param pulumi.Input[_builtins.str] created_at: RFC 3339 timestamp of when the backup job was created.
:param pulumi.Input[_builtins.str] cron_expression: Standard five-field cron expression, for example `0 4 * * *`.
:param pulumi.Input[_builtins.str] destination_id: Backup destination (S3-compatible bucket) to upload to.
:param pulumi.Input[_builtins.bool] enabled: Whether the backup schedule is active.
:param pulumi.Input[_builtins.int] keep_latest_count: Number of backups to retain. Older ones are pruned.
:param pulumi.Input[_builtins.str] libsql_id: libSQL instance that owns the volume.
:param pulumi.Input[_builtins.str] mariadb_id: MariaDB instance that owns the volume.
:param pulumi.Input[_builtins.str] mongo_id: MongoDB instance that owns the volume.
:param pulumi.Input[_builtins.str] mysql_id: MySQL instance that owns the volume.
:param pulumi.Input[_builtins.str] name: Display name of the backup job.
:param pulumi.Input[_builtins.str] postgres_id: PostgreSQL instance that owns the volume.
:param pulumi.Input[_builtins.str] prefix: Path prefix inside the destination bucket, for example `backups/shop/`.
:param pulumi.Input[_builtins.str] redis_id: Redis instance that owns the volume.
:param pulumi.Input[_builtins.str] service_name: Service inside a Compose stack that owns the volume.
:param pulumi.Input[_builtins.str] service_type: The kind of service that owns the volume. Valid values: `application`, `postgres`, `mysql`, `mariadb`, `mongo`, `redis`, `compose`, `libsql`. Defaults to `application`.
:param pulumi.Input[_builtins.bool] turn_off: Stop the service while the backup runs. Slower, but guarantees a consistent copy of data that is being written to.
:param pulumi.Input[_builtins.str] volume_name: Name of the Docker volume to back up.
"""
opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
__props__ = _VolumeBackupState.__new__(_VolumeBackupState)
__props__.__dict__["app_name"] = app_name
__props__.__dict__["application_id"] = application_id
__props__.__dict__["compose_id"] = compose_id
__props__.__dict__["created_at"] = created_at
__props__.__dict__["cron_expression"] = cron_expression
__props__.__dict__["destination_id"] = destination_id
__props__.__dict__["enabled"] = enabled
__props__.__dict__["keep_latest_count"] = keep_latest_count
__props__.__dict__["libsql_id"] = libsql_id
__props__.__dict__["mariadb_id"] = mariadb_id
__props__.__dict__["mongo_id"] = mongo_id
__props__.__dict__["mysql_id"] = mysql_id
__props__.__dict__["name"] = name
__props__.__dict__["postgres_id"] = postgres_id
__props__.__dict__["prefix"] = prefix
__props__.__dict__["redis_id"] = redis_id
__props__.__dict__["service_name"] = service_name
__props__.__dict__["service_type"] = service_type
__props__.__dict__["turn_off"] = turn_off
__props__.__dict__["volume_name"] = volume_name
return VolumeBackup(resource_name, opts=opts, __props__=__props__)
@_builtins.property
@pulumi.getter(name="appName")
def app_name(self) -> pulumi.Output[_builtins.str]:
"""
Docker service name that owns the volume. 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 that owns the volume.
"""
return pulumi.get(self, "application_id")
@_builtins.property
@pulumi.getter(name="composeId")
def compose_id(self) -> pulumi.Output[Optional[_builtins.str]]:
"""
Compose stack that owns the volume.
"""
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 backup job 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 4 * * *`.
"""
return pulumi.get(self, "cron_expression")
@_builtins.property
@pulumi.getter(name="destinationId")
def destination_id(self) -> pulumi.Output[_builtins.str]:
"""
Backup destination (S3-compatible bucket) to upload to.
"""
return pulumi.get(self, "destination_id")
@_builtins.property
@pulumi.getter
def enabled(self) -> pulumi.Output[_builtins.bool]:
"""
Whether the backup schedule is active.
"""
return pulumi.get(self, "enabled")
@_builtins.property
@pulumi.getter(name="keepLatestCount")
def keep_latest_count(self) -> pulumi.Output[_builtins.int]:
"""
Number of backups to retain. Older ones are pruned.
"""
return pulumi.get(self, "keep_latest_count")
@_builtins.property
@pulumi.getter(name="libsqlId")
def libsql_id(self) -> pulumi.Output[Optional[_builtins.str]]:
"""
libSQL instance that owns the volume.
"""
return pulumi.get(self, "libsql_id")
@_builtins.property
@pulumi.getter(name="mariadbId")
def mariadb_id(self) -> pulumi.Output[Optional[_builtins.str]]:
"""
MariaDB instance that owns the volume.
"""
return pulumi.get(self, "mariadb_id")
@_builtins.property
@pulumi.getter(name="mongoId")
def mongo_id(self) -> pulumi.Output[Optional[_builtins.str]]:
"""
MongoDB instance that owns the volume.
"""
return pulumi.get(self, "mongo_id")
@_builtins.property
@pulumi.getter(name="mysqlId")
def mysql_id(self) -> pulumi.Output[Optional[_builtins.str]]:
"""
MySQL instance that owns the volume.
"""
return pulumi.get(self, "mysql_id")
@_builtins.property
@pulumi.getter
def name(self) -> pulumi.Output[_builtins.str]:
"""
Display name of the backup job.
"""
return pulumi.get(self, "name")
@_builtins.property
@pulumi.getter(name="postgresId")
def postgres_id(self) -> pulumi.Output[Optional[_builtins.str]]:
"""
PostgreSQL instance that owns the volume.
"""
return pulumi.get(self, "postgres_id")
@_builtins.property
@pulumi.getter
def prefix(self) -> pulumi.Output[_builtins.str]:
"""
Path prefix inside the destination bucket, for example `backups/shop/`.
"""
return pulumi.get(self, "prefix")
@_builtins.property
@pulumi.getter(name="redisId")
def redis_id(self) -> pulumi.Output[Optional[_builtins.str]]:
"""
Redis instance that owns the volume.
"""
return pulumi.get(self, "redis_id")
@_builtins.property
@pulumi.getter(name="serviceName")
def service_name(self) -> pulumi.Output[Optional[_builtins.str]]:
"""
Service inside a Compose stack that owns the volume.
"""
return pulumi.get(self, "service_name")
@_builtins.property
@pulumi.getter(name="serviceType")
def service_type(self) -> pulumi.Output[_builtins.str]:
"""
The kind of service that owns the volume. Valid values: `application`, `postgres`, `mysql`, `mariadb`, `mongo`, `redis`, `compose`, `libsql`. Defaults to `application`.
"""
return pulumi.get(self, "service_type")
@_builtins.property
@pulumi.getter(name="turnOff")
def turn_off(self) -> pulumi.Output[_builtins.bool]:
"""
Stop the service while the backup runs. Slower, but guarantees a consistent copy of data that is being written to.
"""
return pulumi.get(self, "turn_off")
@_builtins.property
@pulumi.getter(name="volumeName")
def volume_name(self) -> pulumi.Output[_builtins.str]:
"""
Name of the Docker volume to back up.
"""
return pulumi.get(self, "volume_name")