# 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")