Files
pulumi-dokploy/sdk/dotnet/MySql.cs
Max Vojtkov bb3c15135b Bridge terraform-provider-dokploy into a Pulumi provider
18 resources and 5 data sources mapped into the dokploy:index module, with
SDKs generated for TypeScript, Python, Go and .NET.
2026-08-08 15:28:16 +03:00

746 lines
25 KiB
C#
Generated

// *** WARNING: this file was generated by pulumi-language-dotnet. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
using Pulumi;
namespace Maxvojtkov.Dokploy
{
[DokployResourceType("dokploy:index/mySql:MySql")]
public partial class MySql : global::Pulumi.CustomResource
{
/// <summary>
/// Unique Docker service name. Generated by Dokploy when omitted. Changing it forces a new database.
/// </summary>
[Output("appName")]
public Output<string> AppName { get; private set; } = null!;
/// <summary>
/// Current status reported by Dokploy: `Idle`, `Running`, `Done` or `Error`.
/// </summary>
[Output("applicationStatus")]
public Output<string> ApplicationStatus { get; private set; } = null!;
/// <summary>
/// Arguments appended to the container command.
/// </summary>
[Output("args")]
public Output<ImmutableArray<string>> Args { get; private set; } = null!;
/// <summary>
/// Override the container entrypoint command.
/// </summary>
[Output("command")]
public Output<string?> Command { get; private set; } = null!;
/// <summary>
/// Hard CPU limit, for example `1`.
/// </summary>
[Output("cpuLimit")]
public Output<string?> CpuLimit { get; private set; } = null!;
/// <summary>
/// Soft CPU reservation, for example `0.5`.
/// </summary>
[Output("cpuReservation")]
public Output<string?> CpuReservation { get; private set; } = null!;
/// <summary>
/// RFC 3339 timestamp of when the database was created.
/// </summary>
[Output("createdAt")]
public Output<string> CreatedAt { get; private set; } = null!;
/// <summary>
/// Name of the database to create.
/// </summary>
[Output("databaseName")]
public Output<string> DatabaseName { get; private set; } = null!;
/// <summary>
/// Password for the database user.
/// </summary>
[Output("databasePassword")]
public Output<string> DatabasePassword { get; private set; } = null!;
/// <summary>
/// Password for the MySQL `Root` user.
/// </summary>
[Output("databaseRootPassword")]
public Output<string> DatabaseRootPassword { get; private set; } = null!;
/// <summary>
/// Database user to create.
/// </summary>
[Output("databaseUser")]
public Output<string> DatabaseUser { get; private set; } = null!;
/// <summary>
/// Free-form description.
/// </summary>
[Output("description")]
public Output<string?> Description { get; private set; } = null!;
/// <summary>
/// Detach the service from the shared `dokploy-network`.
/// </summary>
[Output("detachDokployNetwork")]
public Output<bool> DetachDokployNetwork { get; private set; } = null!;
/// <summary>
/// MySQL image to run, for example `mysql:8`.
/// </summary>
[Output("dockerImage")]
public Output<string> DockerImage { get; private set; } = null!;
/// <summary>
/// Docker Swarm endpoint specification, as a JSON object.
/// </summary>
[Output("endpointSpecSwarm")]
public Output<string?> EndpointSpecSwarm { get; private set; } = null!;
/// <summary>
/// Environment variables in `KEY=value` format, one per line.
/// </summary>
[Output("env")]
public Output<string?> Env { get; private set; } = null!;
/// <summary>
/// Environment this database belongs to.
/// </summary>
[Output("environmentId")]
public Output<string> EnvironmentId { get; private set; } = null!;
/// <summary>
/// Host port to expose the database on. Leave unset to keep the database reachable only from inside the Docker network.
/// </summary>
[Output("externalPort")]
public Output<int?> ExternalPort { get; private set; } = null!;
/// <summary>
/// Docker Swarm health check configuration, as a JSON object.
/// </summary>
[Output("healthCheckSwarm")]
public Output<string?> HealthCheckSwarm { get; private set; } = null!;
/// <summary>
/// Docker Swarm service labels, as a JSON object.
/// </summary>
[Output("labelsSwarm")]
public Output<string?> LabelsSwarm { get; private set; } = null!;
/// <summary>
/// Hard memory limit, for example `512m`.
/// </summary>
[Output("memoryLimit")]
public Output<string?> MemoryLimit { get; private set; } = null!;
/// <summary>
/// Soft memory reservation, for example `256m`.
/// </summary>
[Output("memoryReservation")]
public Output<string?> MemoryReservation { get; private set; } = null!;
/// <summary>
/// Docker Swarm service mode, as a JSON object.
/// </summary>
[Output("modeSwarm")]
public Output<string?> ModeSwarm { get; private set; } = null!;
/// <summary>
/// Display name of the database.
/// </summary>
[Output("name")]
public Output<string> Name { get; private set; } = null!;
/// <summary>
/// IDs of additional Docker networks to attach.
/// </summary>
[Output("networkIds")]
public Output<ImmutableArray<string>> NetworkIds { get; private set; } = null!;
/// <summary>
/// Docker Swarm network attachments, as a JSON array.
/// </summary>
[Output("networkSwarm")]
public Output<string?> NetworkSwarm { get; private set; } = null!;
/// <summary>
/// Docker Swarm placement constraints, as a JSON object.
/// </summary>
[Output("placementSwarm")]
public Output<string?> PlacementSwarm { get; private set; } = null!;
/// <summary>
/// Number of replicas to run.
/// </summary>
[Output("replicas")]
public Output<int> Replicas { get; private set; } = null!;
/// <summary>
/// Docker Swarm restart policy, as a JSON object.
/// </summary>
[Output("restartPolicySwarm")]
public Output<string?> RestartPolicySwarm { get; private set; } = null!;
/// <summary>
/// Docker Swarm rollback configuration, as a JSON object.
/// </summary>
[Output("rollbackConfigSwarm")]
public Output<string?> RollbackConfigSwarm { get; private set; } = null!;
/// <summary>
/// Remote server to deploy on. Omit to use the Dokploy host itself.
/// </summary>
[Output("serverId")]
public Output<string?> ServerId { get; private set; } = null!;
/// <summary>
/// Grace period in nanoseconds before a container is killed.
/// </summary>
[Output("stopGracePeriodSwarm")]
public Output<int?> StopGracePeriodSwarm { get; private set; } = null!;
/// <summary>
/// Docker Swarm ulimits, as a JSON object.
/// </summary>
[Output("ulimitsSwarm")]
public Output<string?> UlimitsSwarm { get; private set; } = null!;
/// <summary>
/// Docker Swarm rolling update configuration, as a JSON object.
/// </summary>
[Output("updateConfigSwarm")]
public Output<string?> UpdateConfigSwarm { get; private set; } = null!;
/// <summary>
/// Create a MySql resource with the given unique name, arguments, and options.
/// </summary>
///
/// <param name="name">The unique name of the resource</param>
/// <param name="args">The arguments used to populate this resource's properties</param>
/// <param name="options">A bag of options that control this resource's behavior</param>
public MySql(string name, MySqlArgs args, CustomResourceOptions? options = null)
: base("dokploy:index/mySql:MySql", name, args ?? new MySqlArgs(), MakeResourceOptions(options, ""))
{
}
private MySql(string name, Input<string> id, MySqlState? state = null, CustomResourceOptions? options = null)
: base("dokploy:index/mySql:MySql", name, state, MakeResourceOptions(options, id))
{
}
private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input<string>? id)
{
var defaultOptions = new CustomResourceOptions
{
Version = Utilities.Version,
PluginDownloadURL = "github://api.github.com/maxvojtkov/pulumi-dokploy",
AdditionalSecretOutputs =
{
"databasePassword",
"databaseRootPassword",
},
};
var merged = CustomResourceOptions.Merge(defaultOptions, options);
// Override the ID if one was specified for consistency with other language SDKs.
merged.Id = id ?? merged.Id;
return merged;
}
/// <summary>
/// Get an existing MySql resource's state with the given name, ID, and optional extra
/// properties used to qualify the lookup.
/// </summary>
///
/// <param name="name">The unique name of the resulting resource.</param>
/// <param name="id">The unique provider ID of the resource to lookup.</param>
/// <param name="state">Any extra arguments used during the lookup.</param>
/// <param name="options">A bag of options that control this resource's behavior</param>
public static MySql Get(string name, Input<string> id, MySqlState? state = null, CustomResourceOptions? options = null)
{
return new MySql(name, id, state, options);
}
}
public sealed class MySqlArgs : global::Pulumi.ResourceArgs
{
/// <summary>
/// Unique Docker service name. Generated by Dokploy when omitted. Changing it forces a new database.
/// </summary>
[Input("appName")]
public Input<string>? AppName { get; set; }
[Input("args")]
private InputList<string>? _args;
/// <summary>
/// Arguments appended to the container command.
/// </summary>
public InputList<string> Args
{
get => _args ?? (_args = new InputList<string>());
set => _args = value;
}
/// <summary>
/// Override the container entrypoint command.
/// </summary>
[Input("command")]
public Input<string>? Command { get; set; }
/// <summary>
/// Hard CPU limit, for example `1`.
/// </summary>
[Input("cpuLimit")]
public Input<string>? CpuLimit { get; set; }
/// <summary>
/// Soft CPU reservation, for example `0.5`.
/// </summary>
[Input("cpuReservation")]
public Input<string>? CpuReservation { get; set; }
/// <summary>
/// Name of the database to create.
/// </summary>
[Input("databaseName", required: true)]
public Input<string> DatabaseName { get; set; } = null!;
[Input("databasePassword", required: true)]
private Input<string>? _databasePassword;
/// <summary>
/// Password for the database user.
/// </summary>
public Input<string>? DatabasePassword
{
get => _databasePassword;
set
{
var emptySecret = Output.CreateSecret(0);
_databasePassword = Output.Tuple<Input<string>?, int>(value, emptySecret).Apply(t => t.Item1);
}
}
[Input("databaseRootPassword", required: true)]
private Input<string>? _databaseRootPassword;
/// <summary>
/// Password for the MySQL `Root` user.
/// </summary>
public Input<string>? DatabaseRootPassword
{
get => _databaseRootPassword;
set
{
var emptySecret = Output.CreateSecret(0);
_databaseRootPassword = Output.Tuple<Input<string>?, int>(value, emptySecret).Apply(t => t.Item1);
}
}
/// <summary>
/// Database user to create.
/// </summary>
[Input("databaseUser", required: true)]
public Input<string> DatabaseUser { get; set; } = null!;
/// <summary>
/// Free-form description.
/// </summary>
[Input("description")]
public Input<string>? Description { get; set; }
/// <summary>
/// Detach the service from the shared `dokploy-network`.
/// </summary>
[Input("detachDokployNetwork")]
public Input<bool>? DetachDokployNetwork { get; set; }
/// <summary>
/// MySQL image to run, for example `mysql:8`.
/// </summary>
[Input("dockerImage", required: true)]
public Input<string> DockerImage { get; set; } = null!;
/// <summary>
/// Docker Swarm endpoint specification, as a JSON object.
/// </summary>
[Input("endpointSpecSwarm")]
public Input<string>? EndpointSpecSwarm { get; set; }
/// <summary>
/// Environment variables in `KEY=value` format, one per line.
/// </summary>
[Input("env")]
public Input<string>? Env { get; set; }
/// <summary>
/// Environment this database belongs to.
/// </summary>
[Input("environmentId", required: true)]
public Input<string> EnvironmentId { get; set; } = null!;
/// <summary>
/// Host port to expose the database on. Leave unset to keep the database reachable only from inside the Docker network.
/// </summary>
[Input("externalPort")]
public Input<int>? ExternalPort { get; set; }
/// <summary>
/// Docker Swarm health check configuration, as a JSON object.
/// </summary>
[Input("healthCheckSwarm")]
public Input<string>? HealthCheckSwarm { get; set; }
/// <summary>
/// Docker Swarm service labels, as a JSON object.
/// </summary>
[Input("labelsSwarm")]
public Input<string>? LabelsSwarm { get; set; }
/// <summary>
/// Hard memory limit, for example `512m`.
/// </summary>
[Input("memoryLimit")]
public Input<string>? MemoryLimit { get; set; }
/// <summary>
/// Soft memory reservation, for example `256m`.
/// </summary>
[Input("memoryReservation")]
public Input<string>? MemoryReservation { get; set; }
/// <summary>
/// Docker Swarm service mode, as a JSON object.
/// </summary>
[Input("modeSwarm")]
public Input<string>? ModeSwarm { get; set; }
/// <summary>
/// Display name of the database.
/// </summary>
[Input("name")]
public Input<string>? Name { get; set; }
[Input("networkIds")]
private InputList<string>? _networkIds;
/// <summary>
/// IDs of additional Docker networks to attach.
/// </summary>
public InputList<string> NetworkIds
{
get => _networkIds ?? (_networkIds = new InputList<string>());
set => _networkIds = value;
}
/// <summary>
/// Docker Swarm network attachments, as a JSON array.
/// </summary>
[Input("networkSwarm")]
public Input<string>? NetworkSwarm { get; set; }
/// <summary>
/// Docker Swarm placement constraints, as a JSON object.
/// </summary>
[Input("placementSwarm")]
public Input<string>? PlacementSwarm { get; set; }
/// <summary>
/// Number of replicas to run.
/// </summary>
[Input("replicas")]
public Input<int>? Replicas { get; set; }
/// <summary>
/// Docker Swarm restart policy, as a JSON object.
/// </summary>
[Input("restartPolicySwarm")]
public Input<string>? RestartPolicySwarm { get; set; }
/// <summary>
/// Docker Swarm rollback configuration, as a JSON object.
/// </summary>
[Input("rollbackConfigSwarm")]
public Input<string>? RollbackConfigSwarm { get; set; }
/// <summary>
/// Remote server to deploy on. Omit to use the Dokploy host itself.
/// </summary>
[Input("serverId")]
public Input<string>? ServerId { get; set; }
/// <summary>
/// Grace period in nanoseconds before a container is killed.
/// </summary>
[Input("stopGracePeriodSwarm")]
public Input<int>? StopGracePeriodSwarm { get; set; }
/// <summary>
/// Docker Swarm ulimits, as a JSON object.
/// </summary>
[Input("ulimitsSwarm")]
public Input<string>? UlimitsSwarm { get; set; }
/// <summary>
/// Docker Swarm rolling update configuration, as a JSON object.
/// </summary>
[Input("updateConfigSwarm")]
public Input<string>? UpdateConfigSwarm { get; set; }
public MySqlArgs()
{
}
public static new MySqlArgs Empty => new MySqlArgs();
}
public sealed class MySqlState : global::Pulumi.ResourceArgs
{
/// <summary>
/// Unique Docker service name. Generated by Dokploy when omitted. Changing it forces a new database.
/// </summary>
[Input("appName")]
public Input<string>? AppName { get; set; }
/// <summary>
/// Current status reported by Dokploy: `Idle`, `Running`, `Done` or `Error`.
/// </summary>
[Input("applicationStatus")]
public Input<string>? ApplicationStatus { get; set; }
[Input("args")]
private InputList<string>? _args;
/// <summary>
/// Arguments appended to the container command.
/// </summary>
public InputList<string> Args
{
get => _args ?? (_args = new InputList<string>());
set => _args = value;
}
/// <summary>
/// Override the container entrypoint command.
/// </summary>
[Input("command")]
public Input<string>? Command { get; set; }
/// <summary>
/// Hard CPU limit, for example `1`.
/// </summary>
[Input("cpuLimit")]
public Input<string>? CpuLimit { get; set; }
/// <summary>
/// Soft CPU reservation, for example `0.5`.
/// </summary>
[Input("cpuReservation")]
public Input<string>? CpuReservation { get; set; }
/// <summary>
/// RFC 3339 timestamp of when the database was created.
/// </summary>
[Input("createdAt")]
public Input<string>? CreatedAt { get; set; }
/// <summary>
/// Name of the database to create.
/// </summary>
[Input("databaseName")]
public Input<string>? DatabaseName { get; set; }
[Input("databasePassword")]
private Input<string>? _databasePassword;
/// <summary>
/// Password for the database user.
/// </summary>
public Input<string>? DatabasePassword
{
get => _databasePassword;
set
{
var emptySecret = Output.CreateSecret(0);
_databasePassword = Output.Tuple<Input<string>?, int>(value, emptySecret).Apply(t => t.Item1);
}
}
[Input("databaseRootPassword")]
private Input<string>? _databaseRootPassword;
/// <summary>
/// Password for the MySQL `Root` user.
/// </summary>
public Input<string>? DatabaseRootPassword
{
get => _databaseRootPassword;
set
{
var emptySecret = Output.CreateSecret(0);
_databaseRootPassword = Output.Tuple<Input<string>?, int>(value, emptySecret).Apply(t => t.Item1);
}
}
/// <summary>
/// Database user to create.
/// </summary>
[Input("databaseUser")]
public Input<string>? DatabaseUser { get; set; }
/// <summary>
/// Free-form description.
/// </summary>
[Input("description")]
public Input<string>? Description { get; set; }
/// <summary>
/// Detach the service from the shared `dokploy-network`.
/// </summary>
[Input("detachDokployNetwork")]
public Input<bool>? DetachDokployNetwork { get; set; }
/// <summary>
/// MySQL image to run, for example `mysql:8`.
/// </summary>
[Input("dockerImage")]
public Input<string>? DockerImage { get; set; }
/// <summary>
/// Docker Swarm endpoint specification, as a JSON object.
/// </summary>
[Input("endpointSpecSwarm")]
public Input<string>? EndpointSpecSwarm { get; set; }
/// <summary>
/// Environment variables in `KEY=value` format, one per line.
/// </summary>
[Input("env")]
public Input<string>? Env { get; set; }
/// <summary>
/// Environment this database belongs to.
/// </summary>
[Input("environmentId")]
public Input<string>? EnvironmentId { get; set; }
/// <summary>
/// Host port to expose the database on. Leave unset to keep the database reachable only from inside the Docker network.
/// </summary>
[Input("externalPort")]
public Input<int>? ExternalPort { get; set; }
/// <summary>
/// Docker Swarm health check configuration, as a JSON object.
/// </summary>
[Input("healthCheckSwarm")]
public Input<string>? HealthCheckSwarm { get; set; }
/// <summary>
/// Docker Swarm service labels, as a JSON object.
/// </summary>
[Input("labelsSwarm")]
public Input<string>? LabelsSwarm { get; set; }
/// <summary>
/// Hard memory limit, for example `512m`.
/// </summary>
[Input("memoryLimit")]
public Input<string>? MemoryLimit { get; set; }
/// <summary>
/// Soft memory reservation, for example `256m`.
/// </summary>
[Input("memoryReservation")]
public Input<string>? MemoryReservation { get; set; }
/// <summary>
/// Docker Swarm service mode, as a JSON object.
/// </summary>
[Input("modeSwarm")]
public Input<string>? ModeSwarm { get; set; }
/// <summary>
/// Display name of the database.
/// </summary>
[Input("name")]
public Input<string>? Name { get; set; }
[Input("networkIds")]
private InputList<string>? _networkIds;
/// <summary>
/// IDs of additional Docker networks to attach.
/// </summary>
public InputList<string> NetworkIds
{
get => _networkIds ?? (_networkIds = new InputList<string>());
set => _networkIds = value;
}
/// <summary>
/// Docker Swarm network attachments, as a JSON array.
/// </summary>
[Input("networkSwarm")]
public Input<string>? NetworkSwarm { get; set; }
/// <summary>
/// Docker Swarm placement constraints, as a JSON object.
/// </summary>
[Input("placementSwarm")]
public Input<string>? PlacementSwarm { get; set; }
/// <summary>
/// Number of replicas to run.
/// </summary>
[Input("replicas")]
public Input<int>? Replicas { get; set; }
/// <summary>
/// Docker Swarm restart policy, as a JSON object.
/// </summary>
[Input("restartPolicySwarm")]
public Input<string>? RestartPolicySwarm { get; set; }
/// <summary>
/// Docker Swarm rollback configuration, as a JSON object.
/// </summary>
[Input("rollbackConfigSwarm")]
public Input<string>? RollbackConfigSwarm { get; set; }
/// <summary>
/// Remote server to deploy on. Omit to use the Dokploy host itself.
/// </summary>
[Input("serverId")]
public Input<string>? ServerId { get; set; }
/// <summary>
/// Grace period in nanoseconds before a container is killed.
/// </summary>
[Input("stopGracePeriodSwarm")]
public Input<int>? StopGracePeriodSwarm { get; set; }
/// <summary>
/// Docker Swarm ulimits, as a JSON object.
/// </summary>
[Input("ulimitsSwarm")]
public Input<string>? UlimitsSwarm { get; set; }
/// <summary>
/// Docker Swarm rolling update configuration, as a JSON object.
/// </summary>
[Input("updateConfigSwarm")]
public Input<string>? UpdateConfigSwarm { get; set; }
public MySqlState()
{
}
public static new MySqlState Empty => new MySqlState();
}
}