// Code generated by pulumi-language-go DO NOT EDIT. // *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** package dokploy import ( "context" "reflect" "errors" "github.com/maxvojtkov/pulumi-dokploy/sdk/go/dokploy/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // 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. type VolumeBackup struct { pulumi.CustomResourceState // Docker service name that owns the volume. Derived by Dokploy when omitted. AppName pulumi.StringOutput `pulumi:"appName"` // Application that owns the volume. ApplicationId pulumi.StringPtrOutput `pulumi:"applicationId"` // Compose stack that owns the volume. ComposeId pulumi.StringPtrOutput `pulumi:"composeId"` // RFC 3339 timestamp of when the backup job was created. CreatedAt pulumi.StringOutput `pulumi:"createdAt"` // Standard five-field cron expression, for example `0 4 * * *`. CronExpression pulumi.StringOutput `pulumi:"cronExpression"` // Backup destination (S3-compatible bucket) to upload to. DestinationId pulumi.StringOutput `pulumi:"destinationId"` // Whether the backup schedule is active. Enabled pulumi.BoolOutput `pulumi:"enabled"` // Number of backups to retain. Older ones are pruned. KeepLatestCount pulumi.IntOutput `pulumi:"keepLatestCount"` // libSQL instance that owns the volume. LibsqlId pulumi.StringPtrOutput `pulumi:"libsqlId"` // MariaDB instance that owns the volume. MariadbId pulumi.StringPtrOutput `pulumi:"mariadbId"` // MongoDB instance that owns the volume. MongoId pulumi.StringPtrOutput `pulumi:"mongoId"` // MySQL instance that owns the volume. MysqlId pulumi.StringPtrOutput `pulumi:"mysqlId"` // Display name of the backup job. Name pulumi.StringOutput `pulumi:"name"` // PostgreSQL instance that owns the volume. PostgresId pulumi.StringPtrOutput `pulumi:"postgresId"` // Path prefix inside the destination bucket, for example `backups/shop/`. Prefix pulumi.StringOutput `pulumi:"prefix"` // Redis instance that owns the volume. RedisId pulumi.StringPtrOutput `pulumi:"redisId"` // Service inside a Compose stack that owns the volume. ServiceName pulumi.StringPtrOutput `pulumi:"serviceName"` // The kind of service that owns the volume. Valid values: `application`, `postgres`, `mysql`, `mariadb`, `mongo`, `redis`, `compose`, `libsql`. Defaults to `application`. ServiceType pulumi.StringOutput `pulumi:"serviceType"` // Stop the service while the backup runs. Slower, but guarantees a consistent copy of data that is being written to. TurnOff pulumi.BoolOutput `pulumi:"turnOff"` // Name of the Docker volume to back up. VolumeName pulumi.StringOutput `pulumi:"volumeName"` } // NewVolumeBackup registers a new resource with the given unique name, arguments, and options. func NewVolumeBackup(ctx *pulumi.Context, name string, args *VolumeBackupArgs, opts ...pulumi.ResourceOption) (*VolumeBackup, error) { if args == nil { return nil, errors.New("missing one or more required arguments") } if args.CronExpression == nil { return nil, errors.New("invalid value for required argument 'CronExpression'") } if args.DestinationId == nil { return nil, errors.New("invalid value for required argument 'DestinationId'") } if args.Prefix == nil { return nil, errors.New("invalid value for required argument 'Prefix'") } if args.VolumeName == nil { return nil, errors.New("invalid value for required argument 'VolumeName'") } opts = internal.PkgResourceDefaultOpts(opts) var resource VolumeBackup err := ctx.RegisterResource("dokploy:index/volumeBackup:VolumeBackup", name, args, &resource, opts...) if err != nil { return nil, err } return &resource, nil } // GetVolumeBackup gets an existing VolumeBackup resource's state with the given name, ID, and optional // state properties that are used to uniquely qualify the lookup (nil if not required). func GetVolumeBackup(ctx *pulumi.Context, name string, id pulumi.IDInput, state *VolumeBackupState, opts ...pulumi.ResourceOption) (*VolumeBackup, error) { var resource VolumeBackup err := ctx.ReadResource("dokploy:index/volumeBackup:VolumeBackup", name, id, state, &resource, opts...) if err != nil { return nil, err } return &resource, nil } // Input properties used for looking up and filtering VolumeBackup resources. type volumeBackupState struct { // Docker service name that owns the volume. Derived by Dokploy when omitted. AppName *string `pulumi:"appName"` // Application that owns the volume. ApplicationId *string `pulumi:"applicationId"` // Compose stack that owns the volume. ComposeId *string `pulumi:"composeId"` // RFC 3339 timestamp of when the backup job was created. CreatedAt *string `pulumi:"createdAt"` // Standard five-field cron expression, for example `0 4 * * *`. CronExpression *string `pulumi:"cronExpression"` // Backup destination (S3-compatible bucket) to upload to. DestinationId *string `pulumi:"destinationId"` // Whether the backup schedule is active. Enabled *bool `pulumi:"enabled"` // Number of backups to retain. Older ones are pruned. KeepLatestCount *int `pulumi:"keepLatestCount"` // libSQL instance that owns the volume. LibsqlId *string `pulumi:"libsqlId"` // MariaDB instance that owns the volume. MariadbId *string `pulumi:"mariadbId"` // MongoDB instance that owns the volume. MongoId *string `pulumi:"mongoId"` // MySQL instance that owns the volume. MysqlId *string `pulumi:"mysqlId"` // Display name of the backup job. Name *string `pulumi:"name"` // PostgreSQL instance that owns the volume. PostgresId *string `pulumi:"postgresId"` // Path prefix inside the destination bucket, for example `backups/shop/`. Prefix *string `pulumi:"prefix"` // Redis instance that owns the volume. RedisId *string `pulumi:"redisId"` // Service inside a Compose stack that owns the volume. ServiceName *string `pulumi:"serviceName"` // The kind of service that owns the volume. Valid values: `application`, `postgres`, `mysql`, `mariadb`, `mongo`, `redis`, `compose`, `libsql`. Defaults to `application`. ServiceType *string `pulumi:"serviceType"` // Stop the service while the backup runs. Slower, but guarantees a consistent copy of data that is being written to. TurnOff *bool `pulumi:"turnOff"` // Name of the Docker volume to back up. VolumeName *string `pulumi:"volumeName"` } type VolumeBackupState struct { // Docker service name that owns the volume. Derived by Dokploy when omitted. AppName pulumi.StringPtrInput // Application that owns the volume. ApplicationId pulumi.StringPtrInput // Compose stack that owns the volume. ComposeId pulumi.StringPtrInput // RFC 3339 timestamp of when the backup job was created. CreatedAt pulumi.StringPtrInput // Standard five-field cron expression, for example `0 4 * * *`. CronExpression pulumi.StringPtrInput // Backup destination (S3-compatible bucket) to upload to. DestinationId pulumi.StringPtrInput // Whether the backup schedule is active. Enabled pulumi.BoolPtrInput // Number of backups to retain. Older ones are pruned. KeepLatestCount pulumi.IntPtrInput // libSQL instance that owns the volume. LibsqlId pulumi.StringPtrInput // MariaDB instance that owns the volume. MariadbId pulumi.StringPtrInput // MongoDB instance that owns the volume. MongoId pulumi.StringPtrInput // MySQL instance that owns the volume. MysqlId pulumi.StringPtrInput // Display name of the backup job. Name pulumi.StringPtrInput // PostgreSQL instance that owns the volume. PostgresId pulumi.StringPtrInput // Path prefix inside the destination bucket, for example `backups/shop/`. Prefix pulumi.StringPtrInput // Redis instance that owns the volume. RedisId pulumi.StringPtrInput // Service inside a Compose stack that owns the volume. ServiceName pulumi.StringPtrInput // The kind of service that owns the volume. Valid values: `application`, `postgres`, `mysql`, `mariadb`, `mongo`, `redis`, `compose`, `libsql`. Defaults to `application`. ServiceType pulumi.StringPtrInput // Stop the service while the backup runs. Slower, but guarantees a consistent copy of data that is being written to. TurnOff pulumi.BoolPtrInput // Name of the Docker volume to back up. VolumeName pulumi.StringPtrInput } func (VolumeBackupState) ElementType() reflect.Type { return reflect.TypeOf((*volumeBackupState)(nil)).Elem() } type volumeBackupArgs struct { // Docker service name that owns the volume. Derived by Dokploy when omitted. AppName *string `pulumi:"appName"` // Application that owns the volume. ApplicationId *string `pulumi:"applicationId"` // Compose stack that owns the volume. ComposeId *string `pulumi:"composeId"` // Standard five-field cron expression, for example `0 4 * * *`. CronExpression string `pulumi:"cronExpression"` // Backup destination (S3-compatible bucket) to upload to. DestinationId string `pulumi:"destinationId"` // Whether the backup schedule is active. Enabled *bool `pulumi:"enabled"` // Number of backups to retain. Older ones are pruned. KeepLatestCount *int `pulumi:"keepLatestCount"` // libSQL instance that owns the volume. LibsqlId *string `pulumi:"libsqlId"` // MariaDB instance that owns the volume. MariadbId *string `pulumi:"mariadbId"` // MongoDB instance that owns the volume. MongoId *string `pulumi:"mongoId"` // MySQL instance that owns the volume. MysqlId *string `pulumi:"mysqlId"` // Display name of the backup job. Name *string `pulumi:"name"` // PostgreSQL instance that owns the volume. PostgresId *string `pulumi:"postgresId"` // Path prefix inside the destination bucket, for example `backups/shop/`. Prefix string `pulumi:"prefix"` // Redis instance that owns the volume. RedisId *string `pulumi:"redisId"` // Service inside a Compose stack that owns the volume. ServiceName *string `pulumi:"serviceName"` // The kind of service that owns the volume. Valid values: `application`, `postgres`, `mysql`, `mariadb`, `mongo`, `redis`, `compose`, `libsql`. Defaults to `application`. ServiceType *string `pulumi:"serviceType"` // Stop the service while the backup runs. Slower, but guarantees a consistent copy of data that is being written to. TurnOff *bool `pulumi:"turnOff"` // Name of the Docker volume to back up. VolumeName string `pulumi:"volumeName"` } // The set of arguments for constructing a VolumeBackup resource. type VolumeBackupArgs struct { // Docker service name that owns the volume. Derived by Dokploy when omitted. AppName pulumi.StringPtrInput // Application that owns the volume. ApplicationId pulumi.StringPtrInput // Compose stack that owns the volume. ComposeId pulumi.StringPtrInput // Standard five-field cron expression, for example `0 4 * * *`. CronExpression pulumi.StringInput // Backup destination (S3-compatible bucket) to upload to. DestinationId pulumi.StringInput // Whether the backup schedule is active. Enabled pulumi.BoolPtrInput // Number of backups to retain. Older ones are pruned. KeepLatestCount pulumi.IntPtrInput // libSQL instance that owns the volume. LibsqlId pulumi.StringPtrInput // MariaDB instance that owns the volume. MariadbId pulumi.StringPtrInput // MongoDB instance that owns the volume. MongoId pulumi.StringPtrInput // MySQL instance that owns the volume. MysqlId pulumi.StringPtrInput // Display name of the backup job. Name pulumi.StringPtrInput // PostgreSQL instance that owns the volume. PostgresId pulumi.StringPtrInput // Path prefix inside the destination bucket, for example `backups/shop/`. Prefix pulumi.StringInput // Redis instance that owns the volume. RedisId pulumi.StringPtrInput // Service inside a Compose stack that owns the volume. ServiceName pulumi.StringPtrInput // The kind of service that owns the volume. Valid values: `application`, `postgres`, `mysql`, `mariadb`, `mongo`, `redis`, `compose`, `libsql`. Defaults to `application`. ServiceType pulumi.StringPtrInput // Stop the service while the backup runs. Slower, but guarantees a consistent copy of data that is being written to. TurnOff pulumi.BoolPtrInput // Name of the Docker volume to back up. VolumeName pulumi.StringInput } func (VolumeBackupArgs) ElementType() reflect.Type { return reflect.TypeOf((*volumeBackupArgs)(nil)).Elem() } type VolumeBackupInput interface { pulumi.Input ToVolumeBackupOutput() VolumeBackupOutput ToVolumeBackupOutputWithContext(ctx context.Context) VolumeBackupOutput } func (*VolumeBackup) ElementType() reflect.Type { return reflect.TypeOf((**VolumeBackup)(nil)).Elem() } func (i *VolumeBackup) ToVolumeBackupOutput() VolumeBackupOutput { return i.ToVolumeBackupOutputWithContext(context.Background()) } func (i *VolumeBackup) ToVolumeBackupOutputWithContext(ctx context.Context) VolumeBackupOutput { return pulumi.ToOutputWithContext(ctx, i).(VolumeBackupOutput) } // VolumeBackupArrayInput is an input type that accepts VolumeBackupArray and VolumeBackupArrayOutput values. // You can construct a concrete instance of `VolumeBackupArrayInput` via: // // VolumeBackupArray{ VolumeBackupArgs{...} } type VolumeBackupArrayInput interface { pulumi.Input ToVolumeBackupArrayOutput() VolumeBackupArrayOutput ToVolumeBackupArrayOutputWithContext(context.Context) VolumeBackupArrayOutput } type VolumeBackupArray []VolumeBackupInput func (VolumeBackupArray) ElementType() reflect.Type { return reflect.TypeOf((*[]*VolumeBackup)(nil)).Elem() } func (i VolumeBackupArray) ToVolumeBackupArrayOutput() VolumeBackupArrayOutput { return i.ToVolumeBackupArrayOutputWithContext(context.Background()) } func (i VolumeBackupArray) ToVolumeBackupArrayOutputWithContext(ctx context.Context) VolumeBackupArrayOutput { return pulumi.ToOutputWithContext(ctx, i).(VolumeBackupArrayOutput) } // VolumeBackupMapInput is an input type that accepts VolumeBackupMap and VolumeBackupMapOutput values. // You can construct a concrete instance of `VolumeBackupMapInput` via: // // VolumeBackupMap{ "key": VolumeBackupArgs{...} } type VolumeBackupMapInput interface { pulumi.Input ToVolumeBackupMapOutput() VolumeBackupMapOutput ToVolumeBackupMapOutputWithContext(context.Context) VolumeBackupMapOutput } type VolumeBackupMap map[string]VolumeBackupInput func (VolumeBackupMap) ElementType() reflect.Type { return reflect.TypeOf((*map[string]*VolumeBackup)(nil)).Elem() } func (i VolumeBackupMap) ToVolumeBackupMapOutput() VolumeBackupMapOutput { return i.ToVolumeBackupMapOutputWithContext(context.Background()) } func (i VolumeBackupMap) ToVolumeBackupMapOutputWithContext(ctx context.Context) VolumeBackupMapOutput { return pulumi.ToOutputWithContext(ctx, i).(VolumeBackupMapOutput) } type VolumeBackupOutput struct{ *pulumi.OutputState } func (VolumeBackupOutput) ElementType() reflect.Type { return reflect.TypeOf((**VolumeBackup)(nil)).Elem() } func (o VolumeBackupOutput) ToVolumeBackupOutput() VolumeBackupOutput { return o } func (o VolumeBackupOutput) ToVolumeBackupOutputWithContext(ctx context.Context) VolumeBackupOutput { return o } // Docker service name that owns the volume. Derived by Dokploy when omitted. func (o VolumeBackupOutput) AppName() pulumi.StringOutput { return o.ApplyT(func(v *VolumeBackup) pulumi.StringOutput { return v.AppName }).(pulumi.StringOutput) } // Application that owns the volume. func (o VolumeBackupOutput) ApplicationId() pulumi.StringPtrOutput { return o.ApplyT(func(v *VolumeBackup) pulumi.StringPtrOutput { return v.ApplicationId }).(pulumi.StringPtrOutput) } // Compose stack that owns the volume. func (o VolumeBackupOutput) ComposeId() pulumi.StringPtrOutput { return o.ApplyT(func(v *VolumeBackup) pulumi.StringPtrOutput { return v.ComposeId }).(pulumi.StringPtrOutput) } // RFC 3339 timestamp of when the backup job was created. func (o VolumeBackupOutput) CreatedAt() pulumi.StringOutput { return o.ApplyT(func(v *VolumeBackup) pulumi.StringOutput { return v.CreatedAt }).(pulumi.StringOutput) } // Standard five-field cron expression, for example `0 4 * * *`. func (o VolumeBackupOutput) CronExpression() pulumi.StringOutput { return o.ApplyT(func(v *VolumeBackup) pulumi.StringOutput { return v.CronExpression }).(pulumi.StringOutput) } // Backup destination (S3-compatible bucket) to upload to. func (o VolumeBackupOutput) DestinationId() pulumi.StringOutput { return o.ApplyT(func(v *VolumeBackup) pulumi.StringOutput { return v.DestinationId }).(pulumi.StringOutput) } // Whether the backup schedule is active. func (o VolumeBackupOutput) Enabled() pulumi.BoolOutput { return o.ApplyT(func(v *VolumeBackup) pulumi.BoolOutput { return v.Enabled }).(pulumi.BoolOutput) } // Number of backups to retain. Older ones are pruned. func (o VolumeBackupOutput) KeepLatestCount() pulumi.IntOutput { return o.ApplyT(func(v *VolumeBackup) pulumi.IntOutput { return v.KeepLatestCount }).(pulumi.IntOutput) } // libSQL instance that owns the volume. func (o VolumeBackupOutput) LibsqlId() pulumi.StringPtrOutput { return o.ApplyT(func(v *VolumeBackup) pulumi.StringPtrOutput { return v.LibsqlId }).(pulumi.StringPtrOutput) } // MariaDB instance that owns the volume. func (o VolumeBackupOutput) MariadbId() pulumi.StringPtrOutput { return o.ApplyT(func(v *VolumeBackup) pulumi.StringPtrOutput { return v.MariadbId }).(pulumi.StringPtrOutput) } // MongoDB instance that owns the volume. func (o VolumeBackupOutput) MongoId() pulumi.StringPtrOutput { return o.ApplyT(func(v *VolumeBackup) pulumi.StringPtrOutput { return v.MongoId }).(pulumi.StringPtrOutput) } // MySQL instance that owns the volume. func (o VolumeBackupOutput) MysqlId() pulumi.StringPtrOutput { return o.ApplyT(func(v *VolumeBackup) pulumi.StringPtrOutput { return v.MysqlId }).(pulumi.StringPtrOutput) } // Display name of the backup job. func (o VolumeBackupOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v *VolumeBackup) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) } // PostgreSQL instance that owns the volume. func (o VolumeBackupOutput) PostgresId() pulumi.StringPtrOutput { return o.ApplyT(func(v *VolumeBackup) pulumi.StringPtrOutput { return v.PostgresId }).(pulumi.StringPtrOutput) } // Path prefix inside the destination bucket, for example `backups/shop/`. func (o VolumeBackupOutput) Prefix() pulumi.StringOutput { return o.ApplyT(func(v *VolumeBackup) pulumi.StringOutput { return v.Prefix }).(pulumi.StringOutput) } // Redis instance that owns the volume. func (o VolumeBackupOutput) RedisId() pulumi.StringPtrOutput { return o.ApplyT(func(v *VolumeBackup) pulumi.StringPtrOutput { return v.RedisId }).(pulumi.StringPtrOutput) } // Service inside a Compose stack that owns the volume. func (o VolumeBackupOutput) ServiceName() pulumi.StringPtrOutput { return o.ApplyT(func(v *VolumeBackup) pulumi.StringPtrOutput { return v.ServiceName }).(pulumi.StringPtrOutput) } // The kind of service that owns the volume. Valid values: `application`, `postgres`, `mysql`, `mariadb`, `mongo`, `redis`, `compose`, `libsql`. Defaults to `application`. func (o VolumeBackupOutput) ServiceType() pulumi.StringOutput { return o.ApplyT(func(v *VolumeBackup) pulumi.StringOutput { return v.ServiceType }).(pulumi.StringOutput) } // Stop the service while the backup runs. Slower, but guarantees a consistent copy of data that is being written to. func (o VolumeBackupOutput) TurnOff() pulumi.BoolOutput { return o.ApplyT(func(v *VolumeBackup) pulumi.BoolOutput { return v.TurnOff }).(pulumi.BoolOutput) } // Name of the Docker volume to back up. func (o VolumeBackupOutput) VolumeName() pulumi.StringOutput { return o.ApplyT(func(v *VolumeBackup) pulumi.StringOutput { return v.VolumeName }).(pulumi.StringOutput) } type VolumeBackupArrayOutput struct{ *pulumi.OutputState } func (VolumeBackupArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]*VolumeBackup)(nil)).Elem() } func (o VolumeBackupArrayOutput) ToVolumeBackupArrayOutput() VolumeBackupArrayOutput { return o } func (o VolumeBackupArrayOutput) ToVolumeBackupArrayOutputWithContext(ctx context.Context) VolumeBackupArrayOutput { return o } func (o VolumeBackupArrayOutput) Index(i pulumi.IntInput) VolumeBackupOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) *VolumeBackup { return vs[0].([]*VolumeBackup)[vs[1].(int)] }).(VolumeBackupOutput) } type VolumeBackupMapOutput struct{ *pulumi.OutputState } func (VolumeBackupMapOutput) ElementType() reflect.Type { return reflect.TypeOf((*map[string]*VolumeBackup)(nil)).Elem() } func (o VolumeBackupMapOutput) ToVolumeBackupMapOutput() VolumeBackupMapOutput { return o } func (o VolumeBackupMapOutput) ToVolumeBackupMapOutputWithContext(ctx context.Context) VolumeBackupMapOutput { return o } func (o VolumeBackupMapOutput) MapIndex(k pulumi.StringInput) VolumeBackupOutput { return pulumi.All(o, k).ApplyT(func(vs []interface{}) *VolumeBackup { return vs[0].(map[string]*VolumeBackup)[vs[1].(string)] }).(VolumeBackupOutput) } func init() { pulumi.RegisterInputType(reflect.TypeOf((*VolumeBackupInput)(nil)).Elem(), &VolumeBackup{}) pulumi.RegisterInputType(reflect.TypeOf((*VolumeBackupArrayInput)(nil)).Elem(), VolumeBackupArray{}) pulumi.RegisterInputType(reflect.TypeOf((*VolumeBackupMapInput)(nil)).Elem(), VolumeBackupMap{}) pulumi.RegisterOutputType(VolumeBackupOutput{}) pulumi.RegisterOutputType(VolumeBackupArrayOutput{}) pulumi.RegisterOutputType(VolumeBackupMapOutput{}) }