// *** 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 = "github://api.github.com/maxvojtkov/pulumi-dokploy", 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; } /// /// 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 ApplicationState() { } public static new ApplicationState Empty => new ApplicationState(); } }