// *** 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/application:Application")]
public partial class Application : global::Pulumi.CustomResource
{
///
/// Unique Docker service name. Generated by Dokploy when omitted. Changing it forces a new application.
///
[Output("appName")]
public Output AppName { get; private set; } = null!;
///
/// Current status reported by Dokploy: `Idle`, `Running`, `Done` or `Error`.
///
[Output("applicationStatus")]
public Output ApplicationStatus { get; private set; } = null!;
///
/// Arguments appended to the container command.
///
[Output("args")]
public Output> Args { get; private set; } = null!;
///
/// Deploy automatically when the configured trigger fires.
///
[Output("autoDeploy")]
public Output AutoDeploy { get; private set; } = null!;
///
/// Bitbucket branch to build.
///
[Output("bitbucketBranch")]
public Output BitbucketBranch { get; private set; } = null!;
///
/// Path within the Bitbucket repository to build from.
///
[Output("bitbucketBuildPath")]
public Output BitbucketBuildPath { get; private set; } = null!;
///
/// ID of the configured Bitbucket provider connection.
///
[Output("bitbucketId")]
public Output BitbucketId { get; private set; } = null!;
///
/// Bitbucket repository owner.
///
[Output("bitbucketOwner")]
public Output BitbucketOwner { get; private set; } = null!;
///
/// Bitbucket repository name.
///
[Output("bitbucketRepository")]
public Output BitbucketRepository { get; private set; } = null!;
///
/// Bitbucket repository slug.
///
[Output("bitbucketRepositorySlug")]
public Output BitbucketRepositorySlug { get; private set; } = null!;
///
/// GitHub branch to build.
///
[Output("branch")]
public Output Branch { get; private set; } = null!;
///
/// Docker build arguments in `KEY=value` format, one per line.
///
[Output("buildArgs")]
public Output BuildArgs { get; private set; } = null!;
///
/// Path within the GitHub repository to build from.
///
[Output("buildPath")]
public Output BuildPath { get; private set; } = null!;
///
/// Registry used by a dedicated build server.
///
[Output("buildRegistryId")]
public Output BuildRegistryId { get; private set; } = null!;
///
/// Docker build secrets in `KEY=value` format, one per line.
///
[Output("buildSecrets")]
public Output BuildSecrets { get; private set; } = null!;
///
/// Server that performs builds, when separate from the deploy server.
///
[Output("buildServerId")]
public Output BuildServerId { get; private set; } = null!;
///
/// How the application is built. Valid values: `Dockerfile`, `HerokuBuildpacks`, `PaketoBuildpacks`, `Nixpacks`, `Static`, `Railpack`.
///
[Output("buildType")]
public Output BuildType { get; private set; } = null!;
///
/// Discard the build cache on the next deployment.
///
[Output("cleanCache")]
public Output CleanCache { get; private set; } = null!;
///
/// Override the container entrypoint command.
///
[Output("command")]
public Output Command { get; private set; } = null!;
///
/// Hard CPU limit, for example `1`.
///
[Output("cpuLimit")]
public Output CpuLimit { get; private set; } = null!;
///
/// Soft CPU reservation, for example `0.5`.
///
[Output("cpuReservation")]
public Output CpuReservation { get; private set; } = null!;
///
/// Write the environment variables to a `.env` file in the container.
///
[Output("createEnvFile")]
public Output CreateEnvFile { get; private set; } = null!;
///
/// RFC 3339 timestamp of when the application was created.
///
[Output("createdAt")]
public Output CreatedAt { get; private set; } = null!;
///
/// Branch to build for a custom Git remote.
///
[Output("customGitBranch")]
public Output CustomGitBranch { get; private set; } = null!;
///
/// Path within a custom Git repository to build from.
///
[Output("customGitBuildPath")]
public Output CustomGitBuildPath { get; private set; } = null!;
///
/// SSH key used to clone a private custom Git remote.
///
[Output("customGitSshKeyId")]
public Output CustomGitSshKeyId { get; private set; } = null!;
///
/// Git remote URL, when `SourceType` is `Git`.
///
[Output("customGitUrl")]
public Output CustomGitUrl { get; private set; } = null!;
///
/// Free-form description.
///
[Output("description")]
public Output Description { get; private set; } = null!;
///
/// Detach the service from the shared `dokploy-network`.
///
[Output("detachDokployNetwork")]
public Output DetachDokployNetwork { get; private set; } = null!;
///
/// Target stage for a multi-stage Docker build.
///
[Output("dockerBuildStage")]
public Output DockerBuildStage { get; private set; } = null!;
///
/// Docker build context path.
///
[Output("dockerContextPath")]
public Output DockerContextPath { get; private set; } = null!;
///
/// Docker image reference, when `SourceType` is `Docker`.
///
[Output("dockerImage")]
public Output DockerImage { get; private set; } = null!;
///
/// Path to the Dockerfile, when `BuildType` is `Dockerfile`.
///
[Output("dockerfile")]
public Output Dockerfile { get; private set; } = null!;
///
/// Clone Git submodules when checking out the repository.
///
[Output("enableSubmodules")]
public Output EnableSubmodules { get; private set; } = null!;
///
/// Whether the application is enabled.
///
[Output("enabled")]
public Output Enabled { get; private set; } = null!;
///
/// Docker Swarm endpoint specification, as a JSON object.
///
[Output("endpointSpecSwarm")]
public Output EndpointSpecSwarm { get; private set; } = null!;
///
/// Runtime environment variables in `KEY=value` format, one per line.
///
[Output("env")]
public Output Env { get; private set; } = null!;
///
/// Environment this application belongs to.
///
[Output("environmentId")]
public Output EnvironmentId { get; private set; } = null!;
///
/// Gitea branch to build.
///
[Output("giteaBranch")]
public Output GiteaBranch { get; private set; } = null!;
///
/// Path within the Gitea repository to build from.
///
[Output("giteaBuildPath")]
public Output GiteaBuildPath { get; private set; } = null!;
///
/// ID of the configured Gitea provider connection.
///
[Output("giteaId")]
public Output GiteaId { get; private set; } = null!;
///
/// Gitea repository owner.
///
[Output("giteaOwner")]
public Output GiteaOwner { get; private set; } = null!;
///
/// Gitea repository name.
///
[Output("giteaRepository")]
public Output GiteaRepository { get; private set; } = null!;
///
/// ID of the configured GitHub provider connection.
///
[Output("githubId")]
public Output GithubId { get; private set; } = null!;
///
/// GitLab branch to build.
///
[Output("gitlabBranch")]
public Output GitlabBranch { get; private set; } = null!;
///
/// Path within the GitLab repository to build from.
///
[Output("gitlabBuildPath")]
public Output GitlabBuildPath { get; private set; } = null!;
///
/// ID of the configured GitLab provider connection.
///
[Output("gitlabId")]
public Output GitlabId { get; private set; } = null!;
///
/// GitLab repository owner.
///
[Output("gitlabOwner")]
public Output GitlabOwner { get; private set; } = null!;
///
/// Full GitLab namespace path.
///
[Output("gitlabPathNamespace")]
public Output GitlabPathNamespace { get; private set; } = null!;
///
/// Numeric GitLab project ID.
///
[Output("gitlabProjectId")]
public Output GitlabProjectId { get; private set; } = null!;
///
/// GitLab repository name.
///
[Output("gitlabRepository")]
public Output GitlabRepository { get; private set; } = null!;
///
/// Docker Swarm health check configuration, as a JSON object.
///
[Output("healthCheckSwarm")]
public Output HealthCheckSwarm { get; private set; } = null!;
///
/// Heroku buildpack stack version.
///
[Output("herokuVersion")]
public Output HerokuVersion { get; private set; } = null!;
///
/// Build a preview deployment for each pull request.
///
[Output("isPreviewDeploymentsActive")]
public Output IsPreviewDeploymentsActive { get; private set; } = null!;
///
/// Serve a static build as a single-page application.
///
[Output("isStaticSpa")]
public Output IsStaticSpa { get; private set; } = null!;
///
/// Docker Swarm service labels, as a JSON object.
///
[Output("labelsSwarm")]
public Output LabelsSwarm { get; private set; } = null!;
///
/// Hard memory limit, for example `512m`.
///
[Output("memoryLimit")]
public Output MemoryLimit { get; private set; } = null!;
///
/// Soft memory reservation, for example `256m`.
///
[Output("memoryReservation")]
public Output MemoryReservation { get; private set; } = null!;
///
/// Docker Swarm service mode, as a JSON object.
///
[Output("modeSwarm")]
public Output ModeSwarm { get; private set; } = null!;
///
/// Display name of the application.
///
[Output("name")]
public Output Name { get; private set; } = null!;
///
/// IDs of additional Docker networks to attach.
///
[Output("networkIds")]
public Output> NetworkIds { get; private set; } = null!;
///
/// Docker Swarm network attachments, as a JSON array.
///
[Output("networkSwarm")]
public Output NetworkSwarm { get; private set; } = null!;
///
/// GitHub repository owner.
///
[Output("owner")]
public Output Owner { get; private set; } = null!;
///
/// Registry password, when pulling a private image.
///
[Output("password")]
public Output Password { get; private set; } = null!;
///
/// Docker Swarm placement constraints, as a JSON object.
///
[Output("placementSwarm")]
public Output PlacementSwarm { get; private set; } = null!;
///
/// Build arguments applied to preview deployments.
///
[Output("previewBuildArgs")]
public Output PreviewBuildArgs { get; private set; } = null!;
///
/// Build secrets applied to preview deployments.
///
[Output("previewBuildSecrets")]
public Output PreviewBuildSecrets { get; private set; } = null!;
///
/// Certificate strategy for preview deployments. Valid values: `Letsencrypt`, `None`, `Custom`.
///
[Output("previewCertificateType")]
public Output PreviewCertificateType { get; private set; } = null!;
///
/// Traefik certificate resolver for preview deployments.
///
[Output("previewCustomCertResolver")]
public Output PreviewCustomCertResolver { get; private set; } = null!;
///
/// Environment variables applied to preview deployments.
///
[Output("previewEnv")]
public Output PreviewEnv { get; private set; } = null!;
///
/// Serve preview deployments over HTTPS.
///
[Output("previewHttps")]
public Output PreviewHttps { get; private set; } = null!;
///
/// Pull request labels that opt into preview deployments.
///
[Output("previewLabels")]
public Output> PreviewLabels { get; private set; } = null!;
///
/// Maximum number of concurrent preview deployments.
///
[Output("previewLimit")]
public Output PreviewLimit { get; private set; } = null!;
///
/// Base path for preview deployments.
///
[Output("previewPath")]
public Output PreviewPath { get; private set; } = null!;
///
/// Container port exposed by preview deployments.
///
[Output("previewPort")]
public Output PreviewPort { get; private set; } = null!;
///
/// Wildcard domain used to expose preview deployments.
///
[Output("previewWildcard")]
public Output PreviewWildcard { get; private set; } = null!;
///
/// Directory served when `BuildType` is `Static`.
///
[Output("publishDirectory")]
public Output PublishDirectory { get; private set; } = null!;
///
/// Railpack version.
///
[Output("railpackVersion")]
public Output RailpackVersion { get; private set; } = null!;
///
/// Registry used to push the built image.
///
[Output("registryId")]
public Output RegistryId { get; private set; } = null!;
///
/// Registry URL, when pulling a private image.
///
[Output("registryUrl")]
public Output RegistryUrl { get; private set; } = null!;
///
/// Number of replicas to run.
///
[Output("replicas")]
public Output Replicas { get; private set; } = null!;
///
/// GitHub repository name.
///
[Output("repository")]
public Output Repository { get; private set; } = null!;
///
/// Docker Swarm restart policy, as a JSON object.
///
[Output("restartPolicySwarm")]
public Output RestartPolicySwarm { get; private set; } = null!;
///
/// Keep previous images so deployments can be rolled back.
///
[Output("rollbackActive")]
public Output RollbackActive { get; private set; } = null!;
///
/// Docker Swarm rollback configuration, as a JSON object.
///
[Output("rollbackConfigSwarm")]
public Output RollbackConfigSwarm { get; private set; } = null!;
///
/// Registry used to store rollback images.
///
[Output("rollbackRegistryId")]
public Output RollbackRegistryId { get; private set; } = null!;
///
/// Remote server to deploy on. Omit to use the Dokploy host itself.
///
[Output("serverId")]
public Output ServerId { get; private set; } = null!;
///
/// Where the application's code or image comes from. Valid values: `Docker`, `Git`, `Github`, `Gitlab`, `Bitbucket`, `Gitea`, `Drop`.
///
[Output("sourceType")]
public Output SourceType { get; private set; } = null!;
///
/// Grace period in nanoseconds before a container is killed.
///
[Output("stopGracePeriodSwarm")]
public Output StopGracePeriodSwarm { get; private set; } = null!;
///
/// Display subtitle shown in the Dokploy UI.
///
[Output("subtitle")]
public Output Subtitle { get; private set; } = null!;
///
/// Display title shown in the Dokploy UI.
///
[Output("title")]
public Output Title { get; private set; } = null!;
///
/// What triggers an automatic GitHub deployment. Valid values: `Push`, `Tag`.
///
[Output("triggerType")]
public Output TriggerType { get; private set; } = null!;
///
/// Docker Swarm ulimits, as a JSON object.
///
[Output("ulimitsSwarm")]
public Output UlimitsSwarm { get; private set; } = null!;
///
/// Docker Swarm rolling update configuration, as a JSON object.
///
[Output("updateConfigSwarm")]
public Output UpdateConfigSwarm { get; private set; } = null!;
///
/// Registry username, when pulling a private image.
///
[Output("username")]
public Output Username { get; private set; } = null!;
///
/// Glob patterns that limit which changed paths trigger an automatic deployment.
///
[Output("watchPaths")]
public Output> WatchPaths { get; private set; } = null!;
///
/// Create a Application resource with the given unique name, arguments, and options.
///
///
/// The unique name of the resource
/// The arguments used to populate this resource's properties
/// A bag of options that control this resource's behavior
public Application(string name, ApplicationArgs args, CustomResourceOptions? options = null)
: base("dokploy:index/application:Application", name, args ?? new ApplicationArgs(), MakeResourceOptions(options, ""))
{
}
private Application(string name, Input id, ApplicationState? state = null, CustomResourceOptions? options = null)
: base("dokploy:index/application:Application", name, state, MakeResourceOptions(options, id))
{
}
private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id)
{
var defaultOptions = new CustomResourceOptions
{
Version = Utilities.Version,
PluginDownloadURL = "https://gitea.coolify.vojtkov.dev/usr_unknown/pulumi-dokploy/releases/download/v${VERSION}",
AdditionalSecretOutputs =
{
"buildSecrets",
"password",
"previewBuildSecrets",
},
};
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;
}
///
/// Get an existing Application resource's state with the given name, ID, and optional extra
/// properties used to qualify the lookup.
///
///
/// The unique name of the resulting resource.
/// The unique provider ID of the resource to lookup.
/// Any extra arguments used during the lookup.
/// A bag of options that control this resource's behavior
public static Application Get(string name, Input id, ApplicationState? state = null, CustomResourceOptions? options = null)
{
return new Application(name, id, state, options);
}
}
public sealed class ApplicationArgs : global::Pulumi.ResourceArgs
{
///
/// Unique Docker service name. Generated by Dokploy when omitted. Changing it forces a new application.
///
[Input("appName")]
public Input? AppName { get; set; }
[Input("args")]
private InputList? _args;
///
/// Arguments appended to the container command.
///
public InputList Args
{
get => _args ?? (_args = new InputList());
set => _args = value;
}
///
/// Deploy automatically when the configured trigger fires.
///
[Input("autoDeploy")]
public Input? AutoDeploy { get; set; }
///
/// Bitbucket branch to build.
///
[Input("bitbucketBranch")]
public Input? BitbucketBranch { get; set; }
///
/// Path within the Bitbucket repository to build from.
///
[Input("bitbucketBuildPath")]
public Input? BitbucketBuildPath { get; set; }
///
/// ID of the configured Bitbucket provider connection.
///
[Input("bitbucketId")]
public Input? BitbucketId { get; set; }
///
/// Bitbucket repository owner.
///
[Input("bitbucketOwner")]
public Input? BitbucketOwner { get; set; }
///
/// Bitbucket repository name.
///
[Input("bitbucketRepository")]
public Input? BitbucketRepository { get; set; }
///
/// Bitbucket repository slug.
///
[Input("bitbucketRepositorySlug")]
public Input? BitbucketRepositorySlug { get; set; }
///
/// GitHub branch to build.
///
[Input("branch")]
public Input? Branch { get; set; }
///
/// Docker build arguments in `KEY=value` format, one per line.
///
[Input("buildArgs")]
public Input? BuildArgs { get; set; }
///
/// Path within the GitHub repository to build from.
///
[Input("buildPath")]
public Input? BuildPath { get; set; }
///
/// Registry used by a dedicated build server.
///
[Input("buildRegistryId")]
public Input? BuildRegistryId { get; set; }
[Input("buildSecrets")]
private Input? _buildSecrets;
///
/// Docker build secrets in `KEY=value` format, one per line.
///
public Input? BuildSecrets
{
get => _buildSecrets;
set
{
var emptySecret = Output.CreateSecret(0);
_buildSecrets = Output.Tuple?, int>(value, emptySecret).Apply(t => t.Item1);
}
}
///
/// Server that performs builds, when separate from the deploy server.
///
[Input("buildServerId")]
public Input? BuildServerId { get; set; }
///
/// How the application is built. Valid values: `Dockerfile`, `HerokuBuildpacks`, `PaketoBuildpacks`, `Nixpacks`, `Static`, `Railpack`.
///
[Input("buildType")]
public Input? BuildType { get; set; }
///
/// Discard the build cache on the next deployment.
///
[Input("cleanCache")]
public Input? CleanCache { get; set; }
///
/// Override the container entrypoint command.
///
[Input("command")]
public Input? Command { get; set; }
///
/// Hard CPU limit, for example `1`.
///
[Input("cpuLimit")]
public Input? CpuLimit { get; set; }
///
/// Soft CPU reservation, for example `0.5`.
///
[Input("cpuReservation")]
public Input? CpuReservation { get; set; }
///
/// Write the environment variables to a `.env` file in the container.
///
[Input("createEnvFile")]
public Input? CreateEnvFile { get; set; }
///
/// Branch to build for a custom Git remote.
///
[Input("customGitBranch")]
public Input? CustomGitBranch { get; set; }
///
/// Path within a custom Git repository to build from.
///
[Input("customGitBuildPath")]
public Input? CustomGitBuildPath { get; set; }
///
/// SSH key used to clone a private custom Git remote.
///
[Input("customGitSshKeyId")]
public Input? CustomGitSshKeyId { get; set; }
///
/// Git remote URL, when `SourceType` is `Git`.
///
[Input("customGitUrl")]
public Input? CustomGitUrl { get; set; }
///
/// Free-form description.
///
[Input("description")]
public Input? Description { get; set; }
///
/// Detach the service from the shared `dokploy-network`.
///
[Input("detachDokployNetwork")]
public Input? DetachDokployNetwork { get; set; }
///
/// Target stage for a multi-stage Docker build.
///
[Input("dockerBuildStage")]
public Input? DockerBuildStage { get; set; }
///
/// Docker build context path.
///
[Input("dockerContextPath")]
public Input? DockerContextPath { get; set; }
///
/// Docker image reference, when `SourceType` is `Docker`.
///
[Input("dockerImage")]
public Input? DockerImage { get; set; }
///
/// Path to the Dockerfile, when `BuildType` is `Dockerfile`.
///
[Input("dockerfile")]
public Input? Dockerfile { get; set; }
///
/// Clone Git submodules when checking out the repository.
///
[Input("enableSubmodules")]
public Input? EnableSubmodules { get; set; }
///
/// Whether the application is enabled.
///
[Input("enabled")]
public Input? Enabled { get; set; }
///
/// Docker Swarm endpoint specification, as a JSON object.
///
[Input("endpointSpecSwarm")]
public Input? EndpointSpecSwarm { get; set; }
///
/// Runtime environment variables in `KEY=value` format, one per line.
///
[Input("env")]
public Input? Env { get; set; }
///
/// Environment this application belongs to.
///
[Input("environmentId", required: true)]
public Input EnvironmentId { get; set; } = null!;
///
/// Gitea branch to build.
///
[Input("giteaBranch")]
public Input? GiteaBranch { get; set; }
///
/// Path within the Gitea repository to build from.
///
[Input("giteaBuildPath")]
public Input? GiteaBuildPath { get; set; }
///
/// ID of the configured Gitea provider connection.
///
[Input("giteaId")]
public Input? GiteaId { get; set; }
///
/// Gitea repository owner.
///
[Input("giteaOwner")]
public Input? GiteaOwner { get; set; }
///
/// Gitea repository name.
///
[Input("giteaRepository")]
public Input? GiteaRepository { get; set; }
///
/// ID of the configured GitHub provider connection.
///
[Input("githubId")]
public Input? GithubId { get; set; }
///
/// GitLab branch to build.
///
[Input("gitlabBranch")]
public Input? GitlabBranch { get; set; }
///
/// Path within the GitLab repository to build from.
///
[Input("gitlabBuildPath")]
public Input? GitlabBuildPath { get; set; }
///
/// ID of the configured GitLab provider connection.
///
[Input("gitlabId")]
public Input? GitlabId { get; set; }
///
/// GitLab repository owner.
///
[Input("gitlabOwner")]
public Input? GitlabOwner { get; set; }
///
/// Full GitLab namespace path.
///
[Input("gitlabPathNamespace")]
public Input? GitlabPathNamespace { get; set; }
///
/// Numeric GitLab project ID.
///
[Input("gitlabProjectId")]
public Input? GitlabProjectId { get; set; }
///
/// GitLab repository name.
///
[Input("gitlabRepository")]
public Input? GitlabRepository { get; set; }
///
/// Docker Swarm health check configuration, as a JSON object.
///
[Input("healthCheckSwarm")]
public Input? HealthCheckSwarm { get; set; }
///
/// Heroku buildpack stack version.
///
[Input("herokuVersion")]
public Input? HerokuVersion { get; set; }
///
/// Build a preview deployment for each pull request.
///
[Input("isPreviewDeploymentsActive")]
public Input? IsPreviewDeploymentsActive { get; set; }
///
/// Serve a static build as a single-page application.
///
[Input("isStaticSpa")]
public Input? IsStaticSpa { get; set; }
///
/// Docker Swarm service labels, as a JSON object.
///
[Input("labelsSwarm")]
public Input? LabelsSwarm { get; set; }
///
/// Hard memory limit, for example `512m`.
///
[Input("memoryLimit")]
public Input? MemoryLimit { get; set; }
///
/// Soft memory reservation, for example `256m`.
///
[Input("memoryReservation")]
public Input? MemoryReservation { get; set; }
///
/// Docker Swarm service mode, as a JSON object.
///
[Input("modeSwarm")]
public Input? ModeSwarm { get; set; }
///
/// Display name of the application.
///
[Input("name")]
public Input? Name { get; set; }
[Input("networkIds")]
private InputList? _networkIds;
///
/// IDs of additional Docker networks to attach.
///
public InputList NetworkIds
{
get => _networkIds ?? (_networkIds = new InputList());
set => _networkIds = value;
}
///
/// Docker Swarm network attachments, as a JSON array.
///
[Input("networkSwarm")]
public Input? NetworkSwarm { get; set; }
///
/// GitHub repository owner.
///
[Input("owner")]
public Input? Owner { get; set; }
[Input("password")]
private Input? _password;
///
/// Registry password, when pulling a private image.
///
public Input? Password
{
get => _password;
set
{
var emptySecret = Output.CreateSecret(0);
_password = Output.Tuple?, int>(value, emptySecret).Apply(t => t.Item1);
}
}
///
/// Docker Swarm placement constraints, as a JSON object.
///
[Input("placementSwarm")]
public Input? PlacementSwarm { get; set; }
///
/// Build arguments applied to preview deployments.
///
[Input("previewBuildArgs")]
public Input? PreviewBuildArgs { get; set; }
[Input("previewBuildSecrets")]
private Input? _previewBuildSecrets;
///
/// Build secrets applied to preview deployments.
///
public Input? PreviewBuildSecrets
{
get => _previewBuildSecrets;
set
{
var emptySecret = Output.CreateSecret(0);
_previewBuildSecrets = Output.Tuple?, int>(value, emptySecret).Apply(t => t.Item1);
}
}
///
/// Certificate strategy for preview deployments. Valid values: `Letsencrypt`, `None`, `Custom`.
///
[Input("previewCertificateType")]
public Input? PreviewCertificateType { get; set; }
///
/// Traefik certificate resolver for preview deployments.
///
[Input("previewCustomCertResolver")]
public Input? PreviewCustomCertResolver { get; set; }
///
/// Environment variables applied to preview deployments.
///
[Input("previewEnv")]
public Input? PreviewEnv { get; set; }
///
/// Serve preview deployments over HTTPS.
///
[Input("previewHttps")]
public Input? PreviewHttps { get; set; }
[Input("previewLabels")]
private InputList? _previewLabels;
///
/// Pull request labels that opt into preview deployments.
///
public InputList PreviewLabels
{
get => _previewLabels ?? (_previewLabels = new InputList());
set => _previewLabels = value;
}
///
/// Maximum number of concurrent preview deployments.
///
[Input("previewLimit")]
public Input? PreviewLimit { get; set; }
///
/// Base path for preview deployments.
///
[Input("previewPath")]
public Input? PreviewPath { get; set; }
///
/// Container port exposed by preview deployments.
///
[Input("previewPort")]
public Input? PreviewPort { get; set; }
///
/// Wildcard domain used to expose preview deployments.
///
[Input("previewWildcard")]
public Input? PreviewWildcard { get; set; }
///
/// Directory served when `BuildType` is `Static`.
///
[Input("publishDirectory")]
public Input? PublishDirectory { get; set; }
///
/// Railpack version.
///
[Input("railpackVersion")]
public Input? RailpackVersion { get; set; }
///
/// Registry used to push the built image.
///
[Input("registryId")]
public Input? RegistryId { get; set; }
///
/// Registry URL, when pulling a private image.
///
[Input("registryUrl")]
public Input? RegistryUrl { get; set; }
///
/// Number of replicas to run.
///
[Input("replicas")]
public Input? Replicas { get; set; }
///
/// GitHub repository name.
///
[Input("repository")]
public Input? Repository { get; set; }
///
/// Docker Swarm restart policy, as a JSON object.
///
[Input("restartPolicySwarm")]
public Input? RestartPolicySwarm { get; set; }
///
/// Keep previous images so deployments can be rolled back.
///
[Input("rollbackActive")]
public Input? RollbackActive { get; set; }
///
/// Docker Swarm rollback configuration, as a JSON object.
///
[Input("rollbackConfigSwarm")]
public Input? RollbackConfigSwarm { get; set; }
///
/// Registry used to store rollback images.
///
[Input("rollbackRegistryId")]
public Input? RollbackRegistryId { get; set; }
///
/// Remote server to deploy on. Omit to use the Dokploy host itself.
///
[Input("serverId")]
public Input? ServerId { get; set; }
///
/// Where the application's code or image comes from. Valid values: `Docker`, `Git`, `Github`, `Gitlab`, `Bitbucket`, `Gitea`, `Drop`.
///
[Input("sourceType")]
public Input? SourceType { get; set; }
///
/// Grace period in nanoseconds before a container is killed.
///
[Input("stopGracePeriodSwarm")]
public Input? StopGracePeriodSwarm { get; set; }
///
/// Display subtitle shown in the Dokploy UI.
///
[Input("subtitle")]
public Input? Subtitle { get; set; }
///
/// Display title shown in the Dokploy UI.
///
[Input("title")]
public Input? Title { get; set; }
///
/// What triggers an automatic GitHub deployment. Valid values: `Push`, `Tag`.
///
[Input("triggerType")]
public Input? TriggerType { get; set; }
///
/// Docker Swarm ulimits, as a JSON object.
///
[Input("ulimitsSwarm")]
public Input? UlimitsSwarm { get; set; }
///
/// Docker Swarm rolling update configuration, as a JSON object.
///
[Input("updateConfigSwarm")]
public Input? UpdateConfigSwarm { get; set; }
///
/// Registry username, when pulling a private image.
///
[Input("username")]
public Input? Username { get; set; }
[Input("watchPaths")]
private InputList? _watchPaths;
///
/// Glob patterns that limit which changed paths trigger an automatic deployment.
///
public InputList WatchPaths
{
get => _watchPaths ?? (_watchPaths = new InputList());
set => _watchPaths = value;
}
public ApplicationArgs()
{
}
public static new ApplicationArgs Empty => new ApplicationArgs();
}
public sealed class ApplicationState : global::Pulumi.ResourceArgs
{
///
/// Unique Docker service name. Generated by Dokploy when omitted. Changing it forces a new application.
///
[Input("appName")]
public Input? AppName { get; set; }
///
/// Current status reported by Dokploy: `Idle`, `Running`, `Done` or `Error`.
///
[Input("applicationStatus")]
public Input? ApplicationStatus { get; set; }
[Input("args")]
private InputList? _args;
///
/// Arguments appended to the container command.
///
public InputList Args
{
get => _args ?? (_args = new InputList());
set => _args = value;
}
///
/// Deploy automatically when the configured trigger fires.
///
[Input("autoDeploy")]
public Input? AutoDeploy { get; set; }
///
/// Bitbucket branch to build.
///
[Input("bitbucketBranch")]
public Input? BitbucketBranch { get; set; }
///
/// Path within the Bitbucket repository to build from.
///
[Input("bitbucketBuildPath")]
public Input? BitbucketBuildPath { get; set; }
///
/// ID of the configured Bitbucket provider connection.
///
[Input("bitbucketId")]
public Input? BitbucketId { get; set; }
///
/// Bitbucket repository owner.
///
[Input("bitbucketOwner")]
public Input? BitbucketOwner { get; set; }
///
/// Bitbucket repository name.
///
[Input("bitbucketRepository")]
public Input? BitbucketRepository { get; set; }
///
/// Bitbucket repository slug.
///
[Input("bitbucketRepositorySlug")]
public Input? BitbucketRepositorySlug { get; set; }
///
/// GitHub branch to build.
///
[Input("branch")]
public Input? Branch { get; set; }
///
/// Docker build arguments in `KEY=value` format, one per line.
///
[Input("buildArgs")]
public Input? BuildArgs { get; set; }
///
/// Path within the GitHub repository to build from.
///
[Input("buildPath")]
public Input? BuildPath { get; set; }
///
/// Registry used by a dedicated build server.
///
[Input("buildRegistryId")]
public Input? BuildRegistryId { get; set; }
[Input("buildSecrets")]
private Input? _buildSecrets;
///
/// Docker build secrets in `KEY=value` format, one per line.
///
public Input? BuildSecrets
{
get => _buildSecrets;
set
{
var emptySecret = Output.CreateSecret(0);
_buildSecrets = Output.Tuple?, int>(value, emptySecret).Apply(t => t.Item1);
}
}
///
/// Server that performs builds, when separate from the deploy server.
///
[Input("buildServerId")]
public Input? BuildServerId { get; set; }
///
/// How the application is built. Valid values: `Dockerfile`, `HerokuBuildpacks`, `PaketoBuildpacks`, `Nixpacks`, `Static`, `Railpack`.
///
[Input("buildType")]
public Input? BuildType { get; set; }
///
/// Discard the build cache on the next deployment.
///
[Input("cleanCache")]
public Input? CleanCache { get; set; }
///
/// Override the container entrypoint command.
///
[Input("command")]
public Input? Command { get; set; }
///
/// Hard CPU limit, for example `1`.
///
[Input("cpuLimit")]
public Input? CpuLimit { get; set; }
///
/// Soft CPU reservation, for example `0.5`.
///
[Input("cpuReservation")]
public Input? CpuReservation { get; set; }
///
/// Write the environment variables to a `.env` file in the container.
///
[Input("createEnvFile")]
public Input? CreateEnvFile { get; set; }
///
/// RFC 3339 timestamp of when the application was created.
///
[Input("createdAt")]
public Input? CreatedAt { get; set; }
///
/// Branch to build for a custom Git remote.
///
[Input("customGitBranch")]
public Input? CustomGitBranch { get; set; }
///
/// Path within a custom Git repository to build from.
///
[Input("customGitBuildPath")]
public Input? CustomGitBuildPath { get; set; }
///
/// SSH key used to clone a private custom Git remote.
///
[Input("customGitSshKeyId")]
public Input? CustomGitSshKeyId { get; set; }
///
/// Git remote URL, when `SourceType` is `Git`.
///
[Input("customGitUrl")]
public Input? CustomGitUrl { get; set; }
///
/// Free-form description.
///
[Input("description")]
public Input? Description { get; set; }
///
/// Detach the service from the shared `dokploy-network`.
///
[Input("detachDokployNetwork")]
public Input? DetachDokployNetwork { get; set; }
///
/// Target stage for a multi-stage Docker build.
///
[Input("dockerBuildStage")]
public Input? DockerBuildStage { get; set; }
///
/// Docker build context path.
///
[Input("dockerContextPath")]
public Input? DockerContextPath { get; set; }
///
/// Docker image reference, when `SourceType` is `Docker`.
///
[Input("dockerImage")]
public Input? DockerImage { get; set; }
///
/// Path to the Dockerfile, when `BuildType` is `Dockerfile`.
///
[Input("dockerfile")]
public Input? Dockerfile { get; set; }
///
/// Clone Git submodules when checking out the repository.
///
[Input("enableSubmodules")]
public Input? EnableSubmodules { get; set; }
///
/// Whether the application is enabled.
///
[Input("enabled")]
public Input? Enabled { get; set; }
///
/// Docker Swarm endpoint specification, as a JSON object.
///
[Input("endpointSpecSwarm")]
public Input? EndpointSpecSwarm { get; set; }
///
/// Runtime environment variables in `KEY=value` format, one per line.
///
[Input("env")]
public Input? Env { get; set; }
///
/// Environment this application belongs to.
///
[Input("environmentId")]
public Input? EnvironmentId { get; set; }
///
/// Gitea branch to build.
///
[Input("giteaBranch")]
public Input? GiteaBranch { get; set; }
///
/// Path within the Gitea repository to build from.
///
[Input("giteaBuildPath")]
public Input? GiteaBuildPath { get; set; }
///
/// ID of the configured Gitea provider connection.
///
[Input("giteaId")]
public Input? GiteaId { get; set; }
///
/// Gitea repository owner.
///
[Input("giteaOwner")]
public Input? GiteaOwner { get; set; }
///
/// Gitea repository name.
///
[Input("giteaRepository")]
public Input? GiteaRepository { get; set; }
///
/// ID of the configured GitHub provider connection.
///
[Input("githubId")]
public Input? GithubId { get; set; }
///
/// GitLab branch to build.
///
[Input("gitlabBranch")]
public Input? GitlabBranch { get; set; }
///
/// Path within the GitLab repository to build from.
///
[Input("gitlabBuildPath")]
public Input? GitlabBuildPath { get; set; }
///
/// ID of the configured GitLab provider connection.
///
[Input("gitlabId")]
public Input? GitlabId { get; set; }
///