18 resources and 5 data sources mapped into the dokploy:index module, with SDKs generated for TypeScript, Python, Go and .NET.
1907 lines
63 KiB
C#
Generated
1907 lines
63 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/application:Application")]
|
|
public partial class Application : global::Pulumi.CustomResource
|
|
{
|
|
/// <summary>
|
|
/// Unique Docker service name. Generated by Dokploy when omitted. Changing it forces a new application.
|
|
/// </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>
|
|
/// Deploy automatically when the configured trigger fires.
|
|
/// </summary>
|
|
[Output("autoDeploy")]
|
|
public Output<bool> AutoDeploy { get; private set; } = null!;
|
|
|
|
/// <summary>
|
|
/// Bitbucket branch to build.
|
|
/// </summary>
|
|
[Output("bitbucketBranch")]
|
|
public Output<string?> BitbucketBranch { get; private set; } = null!;
|
|
|
|
/// <summary>
|
|
/// Path within the Bitbucket repository to build from.
|
|
/// </summary>
|
|
[Output("bitbucketBuildPath")]
|
|
public Output<string> BitbucketBuildPath { get; private set; } = null!;
|
|
|
|
/// <summary>
|
|
/// ID of the configured Bitbucket provider connection.
|
|
/// </summary>
|
|
[Output("bitbucketId")]
|
|
public Output<string?> BitbucketId { get; private set; } = null!;
|
|
|
|
/// <summary>
|
|
/// Bitbucket repository owner.
|
|
/// </summary>
|
|
[Output("bitbucketOwner")]
|
|
public Output<string?> BitbucketOwner { get; private set; } = null!;
|
|
|
|
/// <summary>
|
|
/// Bitbucket repository name.
|
|
/// </summary>
|
|
[Output("bitbucketRepository")]
|
|
public Output<string?> BitbucketRepository { get; private set; } = null!;
|
|
|
|
/// <summary>
|
|
/// Bitbucket repository slug.
|
|
/// </summary>
|
|
[Output("bitbucketRepositorySlug")]
|
|
public Output<string?> BitbucketRepositorySlug { get; private set; } = null!;
|
|
|
|
/// <summary>
|
|
/// GitHub branch to build.
|
|
/// </summary>
|
|
[Output("branch")]
|
|
public Output<string?> Branch { get; private set; } = null!;
|
|
|
|
/// <summary>
|
|
/// Docker build arguments in `KEY=value` format, one per line.
|
|
/// </summary>
|
|
[Output("buildArgs")]
|
|
public Output<string?> BuildArgs { get; private set; } = null!;
|
|
|
|
/// <summary>
|
|
/// Path within the GitHub repository to build from.
|
|
/// </summary>
|
|
[Output("buildPath")]
|
|
public Output<string> BuildPath { get; private set; } = null!;
|
|
|
|
/// <summary>
|
|
/// Registry used by a dedicated build server.
|
|
/// </summary>
|
|
[Output("buildRegistryId")]
|
|
public Output<string?> BuildRegistryId { get; private set; } = null!;
|
|
|
|
/// <summary>
|
|
/// Docker build secrets in `KEY=value` format, one per line.
|
|
/// </summary>
|
|
[Output("buildSecrets")]
|
|
public Output<string> BuildSecrets { get; private set; } = null!;
|
|
|
|
/// <summary>
|
|
/// Server that performs builds, when separate from the deploy server.
|
|
/// </summary>
|
|
[Output("buildServerId")]
|
|
public Output<string?> BuildServerId { get; private set; } = null!;
|
|
|
|
/// <summary>
|
|
/// How the application is built. Valid values: `Dockerfile`, `HerokuBuildpacks`, `PaketoBuildpacks`, `Nixpacks`, `Static`, `Railpack`.
|
|
/// </summary>
|
|
[Output("buildType")]
|
|
public Output<string> BuildType { get; private set; } = null!;
|
|
|
|
/// <summary>
|
|
/// Discard the build cache on the next deployment.
|
|
/// </summary>
|
|
[Output("cleanCache")]
|
|
public Output<bool> CleanCache { 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>
|
|
/// Write the environment variables to a `.env` file in the container.
|
|
/// </summary>
|
|
[Output("createEnvFile")]
|
|
public Output<bool> CreateEnvFile { get; private set; } = null!;
|
|
|
|
/// <summary>
|
|
/// RFC 3339 timestamp of when the application was created.
|
|
/// </summary>
|
|
[Output("createdAt")]
|
|
public Output<string> CreatedAt { get; private set; } = null!;
|
|
|
|
/// <summary>
|
|
/// Branch to build for a custom Git remote.
|
|
/// </summary>
|
|
[Output("customGitBranch")]
|
|
public Output<string?> CustomGitBranch { get; private set; } = null!;
|
|
|
|
/// <summary>
|
|
/// Path within a custom Git repository to build from.
|
|
/// </summary>
|
|
[Output("customGitBuildPath")]
|
|
public Output<string?> CustomGitBuildPath { get; private set; } = null!;
|
|
|
|
/// <summary>
|
|
/// SSH key used to clone a private custom Git remote.
|
|
/// </summary>
|
|
[Output("customGitSshKeyId")]
|
|
public Output<string?> CustomGitSshKeyId { get; private set; } = null!;
|
|
|
|
/// <summary>
|
|
/// Git remote URL, when `SourceType` is `Git`.
|
|
/// </summary>
|
|
[Output("customGitUrl")]
|
|
public Output<string?> CustomGitUrl { 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>
|
|
/// Target stage for a multi-stage Docker build.
|
|
/// </summary>
|
|
[Output("dockerBuildStage")]
|
|
public Output<string?> DockerBuildStage { get; private set; } = null!;
|
|
|
|
/// <summary>
|
|
/// Docker build context path.
|
|
/// </summary>
|
|
[Output("dockerContextPath")]
|
|
public Output<string?> DockerContextPath { get; private set; } = null!;
|
|
|
|
/// <summary>
|
|
/// Docker image reference, when `SourceType` is `Docker`.
|
|
/// </summary>
|
|
[Output("dockerImage")]
|
|
public Output<string?> DockerImage { get; private set; } = null!;
|
|
|
|
/// <summary>
|
|
/// Path to the Dockerfile, when `BuildType` is `Dockerfile`.
|
|
/// </summary>
|
|
[Output("dockerfile")]
|
|
public Output<string> Dockerfile { get; private set; } = null!;
|
|
|
|
/// <summary>
|
|
/// Clone Git submodules when checking out the repository.
|
|
/// </summary>
|
|
[Output("enableSubmodules")]
|
|
public Output<bool> EnableSubmodules { get; private set; } = null!;
|
|
|
|
/// <summary>
|
|
/// Whether the application is enabled.
|
|
/// </summary>
|
|
[Output("enabled")]
|
|
public Output<bool> Enabled { 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>
|
|
/// Runtime environment variables in `KEY=value` format, one per line.
|
|
/// </summary>
|
|
[Output("env")]
|
|
public Output<string?> Env { get; private set; } = null!;
|
|
|
|
/// <summary>
|
|
/// Environment this application belongs to.
|
|
/// </summary>
|
|
[Output("environmentId")]
|
|
public Output<string> EnvironmentId { get; private set; } = null!;
|
|
|
|
/// <summary>
|
|
/// Gitea branch to build.
|
|
/// </summary>
|
|
[Output("giteaBranch")]
|
|
public Output<string?> GiteaBranch { get; private set; } = null!;
|
|
|
|
/// <summary>
|
|
/// Path within the Gitea repository to build from.
|
|
/// </summary>
|
|
[Output("giteaBuildPath")]
|
|
public Output<string> GiteaBuildPath { get; private set; } = null!;
|
|
|
|
/// <summary>
|
|
/// ID of the configured Gitea provider connection.
|
|
/// </summary>
|
|
[Output("giteaId")]
|
|
public Output<string?> GiteaId { get; private set; } = null!;
|
|
|
|
/// <summary>
|
|
/// Gitea repository owner.
|
|
/// </summary>
|
|
[Output("giteaOwner")]
|
|
public Output<string?> GiteaOwner { get; private set; } = null!;
|
|
|
|
/// <summary>
|
|
/// Gitea repository name.
|
|
/// </summary>
|
|
[Output("giteaRepository")]
|
|
public Output<string?> GiteaRepository { get; private set; } = null!;
|
|
|
|
/// <summary>
|
|
/// ID of the configured GitHub provider connection.
|
|
/// </summary>
|
|
[Output("githubId")]
|
|
public Output<string?> GithubId { get; private set; } = null!;
|
|
|
|
/// <summary>
|
|
/// GitLab branch to build.
|
|
/// </summary>
|
|
[Output("gitlabBranch")]
|
|
public Output<string?> GitlabBranch { get; private set; } = null!;
|
|
|
|
/// <summary>
|
|
/// Path within the GitLab repository to build from.
|
|
/// </summary>
|
|
[Output("gitlabBuildPath")]
|
|
public Output<string> GitlabBuildPath { get; private set; } = null!;
|
|
|
|
/// <summary>
|
|
/// ID of the configured GitLab provider connection.
|
|
/// </summary>
|
|
[Output("gitlabId")]
|
|
public Output<string?> GitlabId { get; private set; } = null!;
|
|
|
|
/// <summary>
|
|
/// GitLab repository owner.
|
|
/// </summary>
|
|
[Output("gitlabOwner")]
|
|
public Output<string?> GitlabOwner { get; private set; } = null!;
|
|
|
|
/// <summary>
|
|
/// Full GitLab namespace path.
|
|
/// </summary>
|
|
[Output("gitlabPathNamespace")]
|
|
public Output<string?> GitlabPathNamespace { get; private set; } = null!;
|
|
|
|
/// <summary>
|
|
/// Numeric GitLab project ID.
|
|
/// </summary>
|
|
[Output("gitlabProjectId")]
|
|
public Output<int?> GitlabProjectId { get; private set; } = null!;
|
|
|
|
/// <summary>
|
|
/// GitLab repository name.
|
|
/// </summary>
|
|
[Output("gitlabRepository")]
|
|
public Output<string?> GitlabRepository { 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>
|
|
/// Heroku buildpack stack version.
|
|
/// </summary>
|
|
[Output("herokuVersion")]
|
|
public Output<string> HerokuVersion { get; private set; } = null!;
|
|
|
|
/// <summary>
|
|
/// Build a preview deployment for each pull request.
|
|
/// </summary>
|
|
[Output("isPreviewDeploymentsActive")]
|
|
public Output<bool> IsPreviewDeploymentsActive { get; private set; } = null!;
|
|
|
|
/// <summary>
|
|
/// Serve a static build as a single-page application.
|
|
/// </summary>
|
|
[Output("isStaticSpa")]
|
|
public Output<bool> IsStaticSpa { 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 application.
|
|
/// </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>
|
|
/// GitHub repository owner.
|
|
/// </summary>
|
|
[Output("owner")]
|
|
public Output<string?> Owner { get; private set; } = null!;
|
|
|
|
/// <summary>
|
|
/// Registry password, when pulling a private image.
|
|
/// </summary>
|
|
[Output("password")]
|
|
public Output<string> Password { 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>
|
|
/// Build arguments applied to preview deployments.
|
|
/// </summary>
|
|
[Output("previewBuildArgs")]
|
|
public Output<string?> PreviewBuildArgs { get; private set; } = null!;
|
|
|
|
/// <summary>
|
|
/// Build secrets applied to preview deployments.
|
|
/// </summary>
|
|
[Output("previewBuildSecrets")]
|
|
public Output<string> PreviewBuildSecrets { get; private set; } = null!;
|
|
|
|
/// <summary>
|
|
/// Certificate strategy for preview deployments. Valid values: `Letsencrypt`, `None`, `Custom`.
|
|
/// </summary>
|
|
[Output("previewCertificateType")]
|
|
public Output<string> PreviewCertificateType { get; private set; } = null!;
|
|
|
|
/// <summary>
|
|
/// Traefik certificate resolver for preview deployments.
|
|
/// </summary>
|
|
[Output("previewCustomCertResolver")]
|
|
public Output<string?> PreviewCustomCertResolver { get; private set; } = null!;
|
|
|
|
/// <summary>
|
|
/// Environment variables applied to preview deployments.
|
|
/// </summary>
|
|
[Output("previewEnv")]
|
|
public Output<string?> PreviewEnv { get; private set; } = null!;
|
|
|
|
/// <summary>
|
|
/// Serve preview deployments over HTTPS.
|
|
/// </summary>
|
|
[Output("previewHttps")]
|
|
public Output<bool> PreviewHttps { get; private set; } = null!;
|
|
|
|
/// <summary>
|
|
/// Pull request labels that opt into preview deployments.
|
|
/// </summary>
|
|
[Output("previewLabels")]
|
|
public Output<ImmutableArray<string>> PreviewLabels { get; private set; } = null!;
|
|
|
|
/// <summary>
|
|
/// Maximum number of concurrent preview deployments.
|
|
/// </summary>
|
|
[Output("previewLimit")]
|
|
public Output<int> PreviewLimit { get; private set; } = null!;
|
|
|
|
/// <summary>
|
|
/// Base path for preview deployments.
|
|
/// </summary>
|
|
[Output("previewPath")]
|
|
public Output<string> PreviewPath { get; private set; } = null!;
|
|
|
|
/// <summary>
|
|
/// Container port exposed by preview deployments.
|
|
/// </summary>
|
|
[Output("previewPort")]
|
|
public Output<int> PreviewPort { get; private set; } = null!;
|
|
|
|
/// <summary>
|
|
/// Wildcard domain used to expose preview deployments.
|
|
/// </summary>
|
|
[Output("previewWildcard")]
|
|
public Output<string?> PreviewWildcard { get; private set; } = null!;
|
|
|
|
/// <summary>
|
|
/// Directory served when `BuildType` is `Static`.
|
|
/// </summary>
|
|
[Output("publishDirectory")]
|
|
public Output<string?> PublishDirectory { get; private set; } = null!;
|
|
|
|
/// <summary>
|
|
/// Railpack version.
|
|
/// </summary>
|
|
[Output("railpackVersion")]
|
|
public Output<string> RailpackVersion { get; private set; } = null!;
|
|
|
|
/// <summary>
|
|
/// Registry used to push the built image.
|
|
/// </summary>
|
|
[Output("registryId")]
|
|
public Output<string?> RegistryId { get; private set; } = null!;
|
|
|
|
/// <summary>
|
|
/// Registry URL, when pulling a private image.
|
|
/// </summary>
|
|
[Output("registryUrl")]
|
|
public Output<string?> RegistryUrl { get; private set; } = null!;
|
|
|
|
/// <summary>
|
|
/// Number of replicas to run.
|
|
/// </summary>
|
|
[Output("replicas")]
|
|
public Output<int> Replicas { get; private set; } = null!;
|
|
|
|
/// <summary>
|
|
/// GitHub repository name.
|
|
/// </summary>
|
|
[Output("repository")]
|
|
public Output<string?> Repository { 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>
|
|
/// Keep previous images so deployments can be rolled back.
|
|
/// </summary>
|
|
[Output("rollbackActive")]
|
|
public Output<bool> RollbackActive { 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>
|
|
/// Registry used to store rollback images.
|
|
/// </summary>
|
|
[Output("rollbackRegistryId")]
|
|
public Output<string?> RollbackRegistryId { 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>
|
|
/// Where the application's code or image comes from. Valid values: `Docker`, `Git`, `Github`, `Gitlab`, `Bitbucket`, `Gitea`, `Drop`.
|
|
/// </summary>
|
|
[Output("sourceType")]
|
|
public Output<string> SourceType { 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>
|
|
/// Display subtitle shown in the Dokploy UI.
|
|
/// </summary>
|
|
[Output("subtitle")]
|
|
public Output<string?> Subtitle { get; private set; } = null!;
|
|
|
|
/// <summary>
|
|
/// Display title shown in the Dokploy UI.
|
|
/// </summary>
|
|
[Output("title")]
|
|
public Output<string?> Title { get; private set; } = null!;
|
|
|
|
/// <summary>
|
|
/// What triggers an automatic GitHub deployment. Valid values: `Push`, `Tag`.
|
|
/// </summary>
|
|
[Output("triggerType")]
|
|
public Output<string> TriggerType { 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>
|
|
/// Registry username, when pulling a private image.
|
|
/// </summary>
|
|
[Output("username")]
|
|
public Output<string?> Username { get; private set; } = null!;
|
|
|
|
/// <summary>
|
|
/// Glob patterns that limit which changed paths trigger an automatic deployment.
|
|
/// </summary>
|
|
[Output("watchPaths")]
|
|
public Output<ImmutableArray<string>> WatchPaths { get; private set; } = null!;
|
|
|
|
|
|
/// <summary>
|
|
/// Create a Application 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 Application(string name, ApplicationArgs args, CustomResourceOptions? options = null)
|
|
: base("dokploy:index/application:Application", name, args ?? new ApplicationArgs(), MakeResourceOptions(options, ""))
|
|
{
|
|
}
|
|
|
|
private Application(string name, Input<string> id, ApplicationState? state = null, CustomResourceOptions? options = null)
|
|
: base("dokploy:index/application:Application", 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 =
|
|
{
|
|
"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;
|
|
}
|
|
/// <summary>
|
|
/// Get an existing Application 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 Application Get(string name, Input<string> id, ApplicationState? state = null, CustomResourceOptions? options = null)
|
|
{
|
|
return new Application(name, id, state, options);
|
|
}
|
|
}
|
|
|
|
public sealed class ApplicationArgs : global::Pulumi.ResourceArgs
|
|
{
|
|
/// <summary>
|
|
/// Unique Docker service name. Generated by Dokploy when omitted. Changing it forces a new application.
|
|
/// </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>
|
|
/// Deploy automatically when the configured trigger fires.
|
|
/// </summary>
|
|
[Input("autoDeploy")]
|
|
public Input<bool>? AutoDeploy { get; set; }
|
|
|
|
/// <summary>
|
|
/// Bitbucket branch to build.
|
|
/// </summary>
|
|
[Input("bitbucketBranch")]
|
|
public Input<string>? BitbucketBranch { get; set; }
|
|
|
|
/// <summary>
|
|
/// Path within the Bitbucket repository to build from.
|
|
/// </summary>
|
|
[Input("bitbucketBuildPath")]
|
|
public Input<string>? BitbucketBuildPath { get; set; }
|
|
|
|
/// <summary>
|
|
/// ID of the configured Bitbucket provider connection.
|
|
/// </summary>
|
|
[Input("bitbucketId")]
|
|
public Input<string>? BitbucketId { get; set; }
|
|
|
|
/// <summary>
|
|
/// Bitbucket repository owner.
|
|
/// </summary>
|
|
[Input("bitbucketOwner")]
|
|
public Input<string>? BitbucketOwner { get; set; }
|
|
|
|
/// <summary>
|
|
/// Bitbucket repository name.
|
|
/// </summary>
|
|
[Input("bitbucketRepository")]
|
|
public Input<string>? BitbucketRepository { get; set; }
|
|
|
|
/// <summary>
|
|
/// Bitbucket repository slug.
|
|
/// </summary>
|
|
[Input("bitbucketRepositorySlug")]
|
|
public Input<string>? BitbucketRepositorySlug { get; set; }
|
|
|
|
/// <summary>
|
|
/// GitHub branch to build.
|
|
/// </summary>
|
|
[Input("branch")]
|
|
public Input<string>? Branch { get; set; }
|
|
|
|
/// <summary>
|
|
/// Docker build arguments in `KEY=value` format, one per line.
|
|
/// </summary>
|
|
[Input("buildArgs")]
|
|
public Input<string>? BuildArgs { get; set; }
|
|
|
|
/// <summary>
|
|
/// Path within the GitHub repository to build from.
|
|
/// </summary>
|
|
[Input("buildPath")]
|
|
public Input<string>? BuildPath { get; set; }
|
|
|
|
/// <summary>
|
|
/// Registry used by a dedicated build server.
|
|
/// </summary>
|
|
[Input("buildRegistryId")]
|
|
public Input<string>? BuildRegistryId { get; set; }
|
|
|
|
[Input("buildSecrets")]
|
|
private Input<string>? _buildSecrets;
|
|
|
|
/// <summary>
|
|
/// Docker build secrets in `KEY=value` format, one per line.
|
|
/// </summary>
|
|
public Input<string>? BuildSecrets
|
|
{
|
|
get => _buildSecrets;
|
|
set
|
|
{
|
|
var emptySecret = Output.CreateSecret(0);
|
|
_buildSecrets = Output.Tuple<Input<string>?, int>(value, emptySecret).Apply(t => t.Item1);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Server that performs builds, when separate from the deploy server.
|
|
/// </summary>
|
|
[Input("buildServerId")]
|
|
public Input<string>? BuildServerId { get; set; }
|
|
|
|
/// <summary>
|
|
/// How the application is built. Valid values: `Dockerfile`, `HerokuBuildpacks`, `PaketoBuildpacks`, `Nixpacks`, `Static`, `Railpack`.
|
|
/// </summary>
|
|
[Input("buildType")]
|
|
public Input<string>? BuildType { get; set; }
|
|
|
|
/// <summary>
|
|
/// Discard the build cache on the next deployment.
|
|
/// </summary>
|
|
[Input("cleanCache")]
|
|
public Input<bool>? CleanCache { get; set; }
|
|
|
|
/// <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>
|
|
/// Write the environment variables to a `.env` file in the container.
|
|
/// </summary>
|
|
[Input("createEnvFile")]
|
|
public Input<bool>? CreateEnvFile { get; set; }
|
|
|
|
/// <summary>
|
|
/// Branch to build for a custom Git remote.
|
|
/// </summary>
|
|
[Input("customGitBranch")]
|
|
public Input<string>? CustomGitBranch { get; set; }
|
|
|
|
/// <summary>
|
|
/// Path within a custom Git repository to build from.
|
|
/// </summary>
|
|
[Input("customGitBuildPath")]
|
|
public Input<string>? CustomGitBuildPath { get; set; }
|
|
|
|
/// <summary>
|
|
/// SSH key used to clone a private custom Git remote.
|
|
/// </summary>
|
|
[Input("customGitSshKeyId")]
|
|
public Input<string>? CustomGitSshKeyId { get; set; }
|
|
|
|
/// <summary>
|
|
/// Git remote URL, when `SourceType` is `Git`.
|
|
/// </summary>
|
|
[Input("customGitUrl")]
|
|
public Input<string>? CustomGitUrl { 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>
|
|
/// Target stage for a multi-stage Docker build.
|
|
/// </summary>
|
|
[Input("dockerBuildStage")]
|
|
public Input<string>? DockerBuildStage { get; set; }
|
|
|
|
/// <summary>
|
|
/// Docker build context path.
|
|
/// </summary>
|
|
[Input("dockerContextPath")]
|
|
public Input<string>? DockerContextPath { get; set; }
|
|
|
|
/// <summary>
|
|
/// Docker image reference, when `SourceType` is `Docker`.
|
|
/// </summary>
|
|
[Input("dockerImage")]
|
|
public Input<string>? DockerImage { get; set; }
|
|
|
|
/// <summary>
|
|
/// Path to the Dockerfile, when `BuildType` is `Dockerfile`.
|
|
/// </summary>
|
|
[Input("dockerfile")]
|
|
public Input<string>? Dockerfile { get; set; }
|
|
|
|
/// <summary>
|
|
/// Clone Git submodules when checking out the repository.
|
|
/// </summary>
|
|
[Input("enableSubmodules")]
|
|
public Input<bool>? EnableSubmodules { get; set; }
|
|
|
|
/// <summary>
|
|
/// Whether the application is enabled.
|
|
/// </summary>
|
|
[Input("enabled")]
|
|
public Input<bool>? Enabled { get; set; }
|
|
|
|
/// <summary>
|
|
/// Docker Swarm endpoint specification, as a JSON object.
|
|
/// </summary>
|
|
[Input("endpointSpecSwarm")]
|
|
public Input<string>? EndpointSpecSwarm { get; set; }
|
|
|
|
/// <summary>
|
|
/// Runtime environment variables in `KEY=value` format, one per line.
|
|
/// </summary>
|
|
[Input("env")]
|
|
public Input<string>? Env { get; set; }
|
|
|
|
/// <summary>
|
|
/// Environment this application belongs to.
|
|
/// </summary>
|
|
[Input("environmentId", required: true)]
|
|
public Input<string> EnvironmentId { get; set; } = null!;
|
|
|
|
/// <summary>
|
|
/// Gitea branch to build.
|
|
/// </summary>
|
|
[Input("giteaBranch")]
|
|
public Input<string>? GiteaBranch { get; set; }
|
|
|
|
/// <summary>
|
|
/// Path within the Gitea repository to build from.
|
|
/// </summary>
|
|
[Input("giteaBuildPath")]
|
|
public Input<string>? GiteaBuildPath { get; set; }
|
|
|
|
/// <summary>
|
|
/// ID of the configured Gitea provider connection.
|
|
/// </summary>
|
|
[Input("giteaId")]
|
|
public Input<string>? GiteaId { get; set; }
|
|
|
|
/// <summary>
|
|
/// Gitea repository owner.
|
|
/// </summary>
|
|
[Input("giteaOwner")]
|
|
public Input<string>? GiteaOwner { get; set; }
|
|
|
|
/// <summary>
|
|
/// Gitea repository name.
|
|
/// </summary>
|
|
[Input("giteaRepository")]
|
|
public Input<string>? GiteaRepository { get; set; }
|
|
|
|
/// <summary>
|
|
/// ID of the configured GitHub provider connection.
|
|
/// </summary>
|
|
[Input("githubId")]
|
|
public Input<string>? GithubId { get; set; }
|
|
|
|
/// <summary>
|
|
/// GitLab branch to build.
|
|
/// </summary>
|
|
[Input("gitlabBranch")]
|
|
public Input<string>? GitlabBranch { get; set; }
|
|
|
|
/// <summary>
|
|
/// Path within the GitLab repository to build from.
|
|
/// </summary>
|
|
[Input("gitlabBuildPath")]
|
|
public Input<string>? GitlabBuildPath { get; set; }
|
|
|
|
/// <summary>
|
|
/// ID of the configured GitLab provider connection.
|
|
/// </summary>
|
|
[Input("gitlabId")]
|
|
public Input<string>? GitlabId { get; set; }
|
|
|
|
/// <summary>
|
|
/// GitLab repository owner.
|
|
/// </summary>
|
|
[Input("gitlabOwner")]
|
|
public Input<string>? GitlabOwner { get; set; }
|
|
|
|
/// <summary>
|
|
/// Full GitLab namespace path.
|
|
/// </summary>
|
|
[Input("gitlabPathNamespace")]
|
|
public Input<string>? GitlabPathNamespace { get; set; }
|
|
|
|
/// <summary>
|
|
/// Numeric GitLab project ID.
|
|
/// </summary>
|
|
[Input("gitlabProjectId")]
|
|
public Input<int>? GitlabProjectId { get; set; }
|
|
|
|
/// <summary>
|
|
/// GitLab repository name.
|
|
/// </summary>
|
|
[Input("gitlabRepository")]
|
|
public Input<string>? GitlabRepository { get; set; }
|
|
|
|
/// <summary>
|
|
/// Docker Swarm health check configuration, as a JSON object.
|
|
/// </summary>
|
|
[Input("healthCheckSwarm")]
|
|
public Input<string>? HealthCheckSwarm { get; set; }
|
|
|
|
/// <summary>
|
|
/// Heroku buildpack stack version.
|
|
/// </summary>
|
|
[Input("herokuVersion")]
|
|
public Input<string>? HerokuVersion { get; set; }
|
|
|
|
/// <summary>
|
|
/// Build a preview deployment for each pull request.
|
|
/// </summary>
|
|
[Input("isPreviewDeploymentsActive")]
|
|
public Input<bool>? IsPreviewDeploymentsActive { get; set; }
|
|
|
|
/// <summary>
|
|
/// Serve a static build as a single-page application.
|
|
/// </summary>
|
|
[Input("isStaticSpa")]
|
|
public Input<bool>? IsStaticSpa { 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 application.
|
|
/// </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>
|
|
/// GitHub repository owner.
|
|
/// </summary>
|
|
[Input("owner")]
|
|
public Input<string>? Owner { get; set; }
|
|
|
|
[Input("password")]
|
|
private Input<string>? _password;
|
|
|
|
/// <summary>
|
|
/// Registry password, when pulling a private image.
|
|
/// </summary>
|
|
public Input<string>? Password
|
|
{
|
|
get => _password;
|
|
set
|
|
{
|
|
var emptySecret = Output.CreateSecret(0);
|
|
_password = Output.Tuple<Input<string>?, int>(value, emptySecret).Apply(t => t.Item1);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Docker Swarm placement constraints, as a JSON object.
|
|
/// </summary>
|
|
[Input("placementSwarm")]
|
|
public Input<string>? PlacementSwarm { get; set; }
|
|
|
|
/// <summary>
|
|
/// Build arguments applied to preview deployments.
|
|
/// </summary>
|
|
[Input("previewBuildArgs")]
|
|
public Input<string>? PreviewBuildArgs { get; set; }
|
|
|
|
[Input("previewBuildSecrets")]
|
|
private Input<string>? _previewBuildSecrets;
|
|
|
|
/// <summary>
|
|
/// Build secrets applied to preview deployments.
|
|
/// </summary>
|
|
public Input<string>? PreviewBuildSecrets
|
|
{
|
|
get => _previewBuildSecrets;
|
|
set
|
|
{
|
|
var emptySecret = Output.CreateSecret(0);
|
|
_previewBuildSecrets = Output.Tuple<Input<string>?, int>(value, emptySecret).Apply(t => t.Item1);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Certificate strategy for preview deployments. Valid values: `Letsencrypt`, `None`, `Custom`.
|
|
/// </summary>
|
|
[Input("previewCertificateType")]
|
|
public Input<string>? PreviewCertificateType { get; set; }
|
|
|
|
/// <summary>
|
|
/// Traefik certificate resolver for preview deployments.
|
|
/// </summary>
|
|
[Input("previewCustomCertResolver")]
|
|
public Input<string>? PreviewCustomCertResolver { get; set; }
|
|
|
|
/// <summary>
|
|
/// Environment variables applied to preview deployments.
|
|
/// </summary>
|
|
[Input("previewEnv")]
|
|
public Input<string>? PreviewEnv { get; set; }
|
|
|
|
/// <summary>
|
|
/// Serve preview deployments over HTTPS.
|
|
/// </summary>
|
|
[Input("previewHttps")]
|
|
public Input<bool>? PreviewHttps { get; set; }
|
|
|
|
[Input("previewLabels")]
|
|
private InputList<string>? _previewLabels;
|
|
|
|
/// <summary>
|
|
/// Pull request labels that opt into preview deployments.
|
|
/// </summary>
|
|
public InputList<string> PreviewLabels
|
|
{
|
|
get => _previewLabels ?? (_previewLabels = new InputList<string>());
|
|
set => _previewLabels = value;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Maximum number of concurrent preview deployments.
|
|
/// </summary>
|
|
[Input("previewLimit")]
|
|
public Input<int>? PreviewLimit { get; set; }
|
|
|
|
/// <summary>
|
|
/// Base path for preview deployments.
|
|
/// </summary>
|
|
[Input("previewPath")]
|
|
public Input<string>? PreviewPath { get; set; }
|
|
|
|
/// <summary>
|
|
/// Container port exposed by preview deployments.
|
|
/// </summary>
|
|
[Input("previewPort")]
|
|
public Input<int>? PreviewPort { get; set; }
|
|
|
|
/// <summary>
|
|
/// Wildcard domain used to expose preview deployments.
|
|
/// </summary>
|
|
[Input("previewWildcard")]
|
|
public Input<string>? PreviewWildcard { get; set; }
|
|
|
|
/// <summary>
|
|
/// Directory served when `BuildType` is `Static`.
|
|
/// </summary>
|
|
[Input("publishDirectory")]
|
|
public Input<string>? PublishDirectory { get; set; }
|
|
|
|
/// <summary>
|
|
/// Railpack version.
|
|
/// </summary>
|
|
[Input("railpackVersion")]
|
|
public Input<string>? RailpackVersion { get; set; }
|
|
|
|
/// <summary>
|
|
/// Registry used to push the built image.
|
|
/// </summary>
|
|
[Input("registryId")]
|
|
public Input<string>? RegistryId { get; set; }
|
|
|
|
/// <summary>
|
|
/// Registry URL, when pulling a private image.
|
|
/// </summary>
|
|
[Input("registryUrl")]
|
|
public Input<string>? RegistryUrl { get; set; }
|
|
|
|
/// <summary>
|
|
/// Number of replicas to run.
|
|
/// </summary>
|
|
[Input("replicas")]
|
|
public Input<int>? Replicas { get; set; }
|
|
|
|
/// <summary>
|
|
/// GitHub repository name.
|
|
/// </summary>
|
|
[Input("repository")]
|
|
public Input<string>? Repository { get; set; }
|
|
|
|
/// <summary>
|
|
/// Docker Swarm restart policy, as a JSON object.
|
|
/// </summary>
|
|
[Input("restartPolicySwarm")]
|
|
public Input<string>? RestartPolicySwarm { get; set; }
|
|
|
|
/// <summary>
|
|
/// Keep previous images so deployments can be rolled back.
|
|
/// </summary>
|
|
[Input("rollbackActive")]
|
|
public Input<bool>? RollbackActive { get; set; }
|
|
|
|
/// <summary>
|
|
/// Docker Swarm rollback configuration, as a JSON object.
|
|
/// </summary>
|
|
[Input("rollbackConfigSwarm")]
|
|
public Input<string>? RollbackConfigSwarm { get; set; }
|
|
|
|
/// <summary>
|
|
/// Registry used to store rollback images.
|
|
/// </summary>
|
|
[Input("rollbackRegistryId")]
|
|
public Input<string>? RollbackRegistryId { 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>
|
|
/// Where the application's code or image comes from. Valid values: `Docker`, `Git`, `Github`, `Gitlab`, `Bitbucket`, `Gitea`, `Drop`.
|
|
/// </summary>
|
|
[Input("sourceType")]
|
|
public Input<string>? SourceType { get; set; }
|
|
|
|
/// <summary>
|
|
/// Grace period in nanoseconds before a container is killed.
|
|
/// </summary>
|
|
[Input("stopGracePeriodSwarm")]
|
|
public Input<int>? StopGracePeriodSwarm { get; set; }
|
|
|
|
/// <summary>
|
|
/// Display subtitle shown in the Dokploy UI.
|
|
/// </summary>
|
|
[Input("subtitle")]
|
|
public Input<string>? Subtitle { get; set; }
|
|
|
|
/// <summary>
|
|
/// Display title shown in the Dokploy UI.
|
|
/// </summary>
|
|
[Input("title")]
|
|
public Input<string>? Title { get; set; }
|
|
|
|
/// <summary>
|
|
/// What triggers an automatic GitHub deployment. Valid values: `Push`, `Tag`.
|
|
/// </summary>
|
|
[Input("triggerType")]
|
|
public Input<string>? TriggerType { 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; }
|
|
|
|
/// <summary>
|
|
/// Registry username, when pulling a private image.
|
|
/// </summary>
|
|
[Input("username")]
|
|
public Input<string>? Username { get; set; }
|
|
|
|
[Input("watchPaths")]
|
|
private InputList<string>? _watchPaths;
|
|
|
|
/// <summary>
|
|
/// Glob patterns that limit which changed paths trigger an automatic deployment.
|
|
/// </summary>
|
|
public InputList<string> WatchPaths
|
|
{
|
|
get => _watchPaths ?? (_watchPaths = new InputList<string>());
|
|
set => _watchPaths = value;
|
|
}
|
|
|
|
public ApplicationArgs()
|
|
{
|
|
}
|
|
public static new ApplicationArgs Empty => new ApplicationArgs();
|
|
}
|
|
|
|
public sealed class ApplicationState : global::Pulumi.ResourceArgs
|
|
{
|
|
/// <summary>
|
|
/// Unique Docker service name. Generated by Dokploy when omitted. Changing it forces a new application.
|
|
/// </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>
|
|
/// Deploy automatically when the configured trigger fires.
|
|
/// </summary>
|
|
[Input("autoDeploy")]
|
|
public Input<bool>? AutoDeploy { get; set; }
|
|
|
|
/// <summary>
|
|
/// Bitbucket branch to build.
|
|
/// </summary>
|
|
[Input("bitbucketBranch")]
|
|
public Input<string>? BitbucketBranch { get; set; }
|
|
|
|
/// <summary>
|
|
/// Path within the Bitbucket repository to build from.
|
|
/// </summary>
|
|
[Input("bitbucketBuildPath")]
|
|
public Input<string>? BitbucketBuildPath { get; set; }
|
|
|
|
/// <summary>
|
|
/// ID of the configured Bitbucket provider connection.
|
|
/// </summary>
|
|
[Input("bitbucketId")]
|
|
public Input<string>? BitbucketId { get; set; }
|
|
|
|
/// <summary>
|
|
/// Bitbucket repository owner.
|
|
/// </summary>
|
|
[Input("bitbucketOwner")]
|
|
public Input<string>? BitbucketOwner { get; set; }
|
|
|
|
/// <summary>
|
|
/// Bitbucket repository name.
|
|
/// </summary>
|
|
[Input("bitbucketRepository")]
|
|
public Input<string>? BitbucketRepository { get; set; }
|
|
|
|
/// <summary>
|
|
/// Bitbucket repository slug.
|
|
/// </summary>
|
|
[Input("bitbucketRepositorySlug")]
|
|
public Input<string>? BitbucketRepositorySlug { get; set; }
|
|
|
|
/// <summary>
|
|
/// GitHub branch to build.
|
|
/// </summary>
|
|
[Input("branch")]
|
|
public Input<string>? Branch { get; set; }
|
|
|
|
/// <summary>
|
|
/// Docker build arguments in `KEY=value` format, one per line.
|
|
/// </summary>
|
|
[Input("buildArgs")]
|
|
public Input<string>? BuildArgs { get; set; }
|
|
|
|
/// <summary>
|
|
/// Path within the GitHub repository to build from.
|
|
/// </summary>
|
|
[Input("buildPath")]
|
|
public Input<string>? BuildPath { get; set; }
|
|
|
|
/// <summary>
|
|
/// Registry used by a dedicated build server.
|
|
/// </summary>
|
|
[Input("buildRegistryId")]
|
|
public Input<string>? BuildRegistryId { get; set; }
|
|
|
|
[Input("buildSecrets")]
|
|
private Input<string>? _buildSecrets;
|
|
|
|
/// <summary>
|
|
/// Docker build secrets in `KEY=value` format, one per line.
|
|
/// </summary>
|
|
public Input<string>? BuildSecrets
|
|
{
|
|
get => _buildSecrets;
|
|
set
|
|
{
|
|
var emptySecret = Output.CreateSecret(0);
|
|
_buildSecrets = Output.Tuple<Input<string>?, int>(value, emptySecret).Apply(t => t.Item1);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Server that performs builds, when separate from the deploy server.
|
|
/// </summary>
|
|
[Input("buildServerId")]
|
|
public Input<string>? BuildServerId { get; set; }
|
|
|
|
/// <summary>
|
|
/// How the application is built. Valid values: `Dockerfile`, `HerokuBuildpacks`, `PaketoBuildpacks`, `Nixpacks`, `Static`, `Railpack`.
|
|
/// </summary>
|
|
[Input("buildType")]
|
|
public Input<string>? BuildType { get; set; }
|
|
|
|
/// <summary>
|
|
/// Discard the build cache on the next deployment.
|
|
/// </summary>
|
|
[Input("cleanCache")]
|
|
public Input<bool>? CleanCache { get; set; }
|
|
|
|
/// <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>
|
|
/// Write the environment variables to a `.env` file in the container.
|
|
/// </summary>
|
|
[Input("createEnvFile")]
|
|
public Input<bool>? CreateEnvFile { get; set; }
|
|
|
|
/// <summary>
|
|
/// RFC 3339 timestamp of when the application was created.
|
|
/// </summary>
|
|
[Input("createdAt")]
|
|
public Input<string>? CreatedAt { get; set; }
|
|
|
|
/// <summary>
|
|
/// Branch to build for a custom Git remote.
|
|
/// </summary>
|
|
[Input("customGitBranch")]
|
|
public Input<string>? CustomGitBranch { get; set; }
|
|
|
|
/// <summary>
|
|
/// Path within a custom Git repository to build from.
|
|
/// </summary>
|
|
[Input("customGitBuildPath")]
|
|
public Input<string>? CustomGitBuildPath { get; set; }
|
|
|
|
/// <summary>
|
|
/// SSH key used to clone a private custom Git remote.
|
|
/// </summary>
|
|
[Input("customGitSshKeyId")]
|
|
public Input<string>? CustomGitSshKeyId { get; set; }
|
|
|
|
/// <summary>
|
|
/// Git remote URL, when `SourceType` is `Git`.
|
|
/// </summary>
|
|
[Input("customGitUrl")]
|
|
public Input<string>? CustomGitUrl { 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>
|
|
/// Target stage for a multi-stage Docker build.
|
|
/// </summary>
|
|
[Input("dockerBuildStage")]
|
|
public Input<string>? DockerBuildStage { get; set; }
|
|
|
|
/// <summary>
|
|
/// Docker build context path.
|
|
/// </summary>
|
|
[Input("dockerContextPath")]
|
|
public Input<string>? DockerContextPath { get; set; }
|
|
|
|
/// <summary>
|
|
/// Docker image reference, when `SourceType` is `Docker`.
|
|
/// </summary>
|
|
[Input("dockerImage")]
|
|
public Input<string>? DockerImage { get; set; }
|
|
|
|
/// <summary>
|
|
/// Path to the Dockerfile, when `BuildType` is `Dockerfile`.
|
|
/// </summary>
|
|
[Input("dockerfile")]
|
|
public Input<string>? Dockerfile { get; set; }
|
|
|
|
/// <summary>
|
|
/// Clone Git submodules when checking out the repository.
|
|
/// </summary>
|
|
[Input("enableSubmodules")]
|
|
public Input<bool>? EnableSubmodules { get; set; }
|
|
|
|
/// <summary>
|
|
/// Whether the application is enabled.
|
|
/// </summary>
|
|
[Input("enabled")]
|
|
public Input<bool>? Enabled { get; set; }
|
|
|
|
/// <summary>
|
|
/// Docker Swarm endpoint specification, as a JSON object.
|
|
/// </summary>
|
|
[Input("endpointSpecSwarm")]
|
|
public Input<string>? EndpointSpecSwarm { get; set; }
|
|
|
|
/// <summary>
|
|
/// Runtime environment variables in `KEY=value` format, one per line.
|
|
/// </summary>
|
|
[Input("env")]
|
|
public Input<string>? Env { get; set; }
|
|
|
|
/// <summary>
|
|
/// Environment this application belongs to.
|
|
/// </summary>
|
|
[Input("environmentId")]
|
|
public Input<string>? EnvironmentId { get; set; }
|
|
|
|
/// <summary>
|
|
/// Gitea branch to build.
|
|
/// </summary>
|
|
[Input("giteaBranch")]
|
|
public Input<string>? GiteaBranch { get; set; }
|
|
|
|
/// <summary>
|
|
/// Path within the Gitea repository to build from.
|
|
/// </summary>
|
|
[Input("giteaBuildPath")]
|
|
public Input<string>? GiteaBuildPath { get; set; }
|
|
|
|
/// <summary>
|
|
/// ID of the configured Gitea provider connection.
|
|
/// </summary>
|
|
[Input("giteaId")]
|
|
public Input<string>? GiteaId { get; set; }
|
|
|
|
/// <summary>
|
|
/// Gitea repository owner.
|
|
/// </summary>
|
|
[Input("giteaOwner")]
|
|
public Input<string>? GiteaOwner { get; set; }
|
|
|
|
/// <summary>
|
|
/// Gitea repository name.
|
|
/// </summary>
|
|
[Input("giteaRepository")]
|
|
public Input<string>? GiteaRepository { get; set; }
|
|
|
|
/// <summary>
|
|
/// ID of the configured GitHub provider connection.
|
|
/// </summary>
|
|
[Input("githubId")]
|
|
public Input<string>? GithubId { get; set; }
|
|
|
|
/// <summary>
|
|
/// GitLab branch to build.
|
|
/// </summary>
|
|
[Input("gitlabBranch")]
|
|
public Input<string>? GitlabBranch { get; set; }
|
|
|
|
/// <summary>
|
|
/// Path within the GitLab repository to build from.
|
|
/// </summary>
|
|
[Input("gitlabBuildPath")]
|
|
public Input<string>? GitlabBuildPath { get; set; }
|
|
|
|
/// <summary>
|
|
/// ID of the configured GitLab provider connection.
|
|
/// </summary>
|
|
[Input("gitlabId")]
|
|
public Input<string>? GitlabId { get; set; }
|
|
|
|
/// <summary>
|
|
/// GitLab repository owner.
|
|
/// </summary>
|
|
[Input("gitlabOwner")]
|
|
public Input<string>? GitlabOwner { get; set; }
|
|
|
|
/// <summary>
|
|
/// Full GitLab namespace path.
|
|
/// </summary>
|
|
[Input("gitlabPathNamespace")]
|
|
public Input<string>? GitlabPathNamespace { get; set; }
|
|
|
|
/// <summary>
|
|
/// Numeric GitLab project ID.
|
|
/// </summary>
|
|
[Input("gitlabProjectId")]
|
|
public Input<int>? GitlabProjectId { get; set; }
|
|
|
|
/// <summary>
|
|
/// GitLab repository name.
|
|
/// </summary>
|
|
[Input("gitlabRepository")]
|
|
public Input<string>? GitlabRepository { get; set; }
|
|
|
|
/// <summary>
|
|
/// Docker Swarm health check configuration, as a JSON object.
|
|
/// </summary>
|
|
[Input("healthCheckSwarm")]
|
|
public Input<string>? HealthCheckSwarm { get; set; }
|
|
|
|
/// <summary>
|
|
/// Heroku buildpack stack version.
|
|
/// </summary>
|
|
[Input("herokuVersion")]
|
|
public Input<string>? HerokuVersion { get; set; }
|
|
|
|
/// <summary>
|
|
/// Build a preview deployment for each pull request.
|
|
/// </summary>
|
|
[Input("isPreviewDeploymentsActive")]
|
|
public Input<bool>? IsPreviewDeploymentsActive { get; set; }
|
|
|
|
/// <summary>
|
|
/// Serve a static build as a single-page application.
|
|
/// </summary>
|
|
[Input("isStaticSpa")]
|
|
public Input<bool>? IsStaticSpa { 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 application.
|
|
/// </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>
|
|
/// GitHub repository owner.
|
|
/// </summary>
|
|
[Input("owner")]
|
|
public Input<string>? Owner { get; set; }
|
|
|
|
[Input("password")]
|
|
private Input<string>? _password;
|
|
|
|
/// <summary>
|
|
/// Registry password, when pulling a private image.
|
|
/// </summary>
|
|
public Input<string>? Password
|
|
{
|
|
get => _password;
|
|
set
|
|
{
|
|
var emptySecret = Output.CreateSecret(0);
|
|
_password = Output.Tuple<Input<string>?, int>(value, emptySecret).Apply(t => t.Item1);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Docker Swarm placement constraints, as a JSON object.
|
|
/// </summary>
|
|
[Input("placementSwarm")]
|
|
public Input<string>? PlacementSwarm { get; set; }
|
|
|
|
/// <summary>
|
|
/// Build arguments applied to preview deployments.
|
|
/// </summary>
|
|
[Input("previewBuildArgs")]
|
|
public Input<string>? PreviewBuildArgs { get; set; }
|
|
|
|
[Input("previewBuildSecrets")]
|
|
private Input<string>? _previewBuildSecrets;
|
|
|
|
/// <summary>
|
|
/// Build secrets applied to preview deployments.
|
|
/// </summary>
|
|
public Input<string>? PreviewBuildSecrets
|
|
{
|
|
get => _previewBuildSecrets;
|
|
set
|
|
{
|
|
var emptySecret = Output.CreateSecret(0);
|
|
_previewBuildSecrets = Output.Tuple<Input<string>?, int>(value, emptySecret).Apply(t => t.Item1);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Certificate strategy for preview deployments. Valid values: `Letsencrypt`, `None`, `Custom`.
|
|
/// </summary>
|
|
[Input("previewCertificateType")]
|
|
public Input<string>? PreviewCertificateType { get; set; }
|
|
|
|
/// <summary>
|
|
/// Traefik certificate resolver for preview deployments.
|
|
/// </summary>
|
|
[Input("previewCustomCertResolver")]
|
|
public Input<string>? PreviewCustomCertResolver { get; set; }
|
|
|
|
/// <summary>
|
|
/// Environment variables applied to preview deployments.
|
|
/// </summary>
|
|
[Input("previewEnv")]
|
|
public Input<string>? PreviewEnv { get; set; }
|
|
|
|
/// <summary>
|
|
/// Serve preview deployments over HTTPS.
|
|
/// </summary>
|
|
[Input("previewHttps")]
|
|
public Input<bool>? PreviewHttps { get; set; }
|
|
|
|
[Input("previewLabels")]
|
|
private InputList<string>? _previewLabels;
|
|
|
|
/// <summary>
|
|
/// Pull request labels that opt into preview deployments.
|
|
/// </summary>
|
|
public InputList<string> PreviewLabels
|
|
{
|
|
get => _previewLabels ?? (_previewLabels = new InputList<string>());
|
|
set => _previewLabels = value;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Maximum number of concurrent preview deployments.
|
|
/// </summary>
|
|
[Input("previewLimit")]
|
|
public Input<int>? PreviewLimit { get; set; }
|
|
|
|
/// <summary>
|
|
/// Base path for preview deployments.
|
|
/// </summary>
|
|
[Input("previewPath")]
|
|
public Input<string>? PreviewPath { get; set; }
|
|
|
|
/// <summary>
|
|
/// Container port exposed by preview deployments.
|
|
/// </summary>
|
|
[Input("previewPort")]
|
|
public Input<int>? PreviewPort { get; set; }
|
|
|
|
/// <summary>
|
|
/// Wildcard domain used to expose preview deployments.
|
|
/// </summary>
|
|
[Input("previewWildcard")]
|
|
public Input<string>? PreviewWildcard { get; set; }
|
|
|
|
/// <summary>
|
|
/// Directory served when `BuildType` is `Static`.
|
|
/// </summary>
|
|
[Input("publishDirectory")]
|
|
public Input<string>? PublishDirectory { get; set; }
|
|
|
|
/// <summary>
|
|
/// Railpack version.
|
|
/// </summary>
|
|
[Input("railpackVersion")]
|
|
public Input<string>? RailpackVersion { get; set; }
|
|
|
|
/// <summary>
|
|
/// Registry used to push the built image.
|
|
/// </summary>
|
|
[Input("registryId")]
|
|
public Input<string>? RegistryId { get; set; }
|
|
|
|
/// <summary>
|
|
/// Registry URL, when pulling a private image.
|
|
/// </summary>
|
|
[Input("registryUrl")]
|
|
public Input<string>? RegistryUrl { get; set; }
|
|
|
|
/// <summary>
|
|
/// Number of replicas to run.
|
|
/// </summary>
|
|
[Input("replicas")]
|
|
public Input<int>? Replicas { get; set; }
|
|
|
|
/// <summary>
|
|
/// GitHub repository name.
|
|
/// </summary>
|
|
[Input("repository")]
|
|
public Input<string>? Repository { get; set; }
|
|
|
|
/// <summary>
|
|
/// Docker Swarm restart policy, as a JSON object.
|
|
/// </summary>
|
|
[Input("restartPolicySwarm")]
|
|
public Input<string>? RestartPolicySwarm { get; set; }
|
|
|
|
/// <summary>
|
|
/// Keep previous images so deployments can be rolled back.
|
|
/// </summary>
|
|
[Input("rollbackActive")]
|
|
public Input<bool>? RollbackActive { get; set; }
|
|
|
|
/// <summary>
|
|
/// Docker Swarm rollback configuration, as a JSON object.
|
|
/// </summary>
|
|
[Input("rollbackConfigSwarm")]
|
|
public Input<string>? RollbackConfigSwarm { get; set; }
|
|
|
|
/// <summary>
|
|
/// Registry used to store rollback images.
|
|
/// </summary>
|
|
[Input("rollbackRegistryId")]
|
|
public Input<string>? RollbackRegistryId { 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>
|
|
/// Where the application's code or image comes from. Valid values: `Docker`, `Git`, `Github`, `Gitlab`, `Bitbucket`, `Gitea`, `Drop`.
|
|
/// </summary>
|
|
[Input("sourceType")]
|
|
public Input<string>? SourceType { get; set; }
|
|
|
|
/// <summary>
|
|
/// Grace period in nanoseconds before a container is killed.
|
|
/// </summary>
|
|
[Input("stopGracePeriodSwarm")]
|
|
public Input<int>? StopGracePeriodSwarm { get; set; }
|
|
|
|
/// <summary>
|
|
/// Display subtitle shown in the Dokploy UI.
|
|
/// </summary>
|
|
[Input("subtitle")]
|
|
public Input<string>? Subtitle { get; set; }
|
|
|
|
/// <summary>
|
|
/// Display title shown in the Dokploy UI.
|
|
/// </summary>
|
|
[Input("title")]
|
|
public Input<string>? Title { get; set; }
|
|
|
|
/// <summary>
|
|
/// What triggers an automatic GitHub deployment. Valid values: `Push`, `Tag`.
|
|
/// </summary>
|
|
[Input("triggerType")]
|
|
public Input<string>? TriggerType { 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; }
|
|
|
|
/// <summary>
|
|
/// Registry username, when pulling a private image.
|
|
/// </summary>
|
|
[Input("username")]
|
|
public Input<string>? Username { get; set; }
|
|
|
|
[Input("watchPaths")]
|
|
private InputList<string>? _watchPaths;
|
|
|
|
/// <summary>
|
|
/// Glob patterns that limit which changed paths trigger an automatic deployment.
|
|
/// </summary>
|
|
public InputList<string> WatchPaths
|
|
{
|
|
get => _watchPaths ?? (_watchPaths = new InputList<string>());
|
|
set => _watchPaths = value;
|
|
}
|
|
|
|
public ApplicationState()
|
|
{
|
|
}
|
|
public static new ApplicationState Empty => new ApplicationState();
|
|
}
|
|
}
|