// *** 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/compose:Compose")] public partial class Compose : global::Pulumi.CustomResource { /// /// Unique Docker stack name. Generated by Dokploy when omitted. Changing it forces a new stack. /// [Output("appName")] public Output AppName { get; private set; } = null!; /// /// Deploy automatically when the configured trigger fires. /// [Output("autoDeploy")] public Output AutoDeploy { get; private set; } = null!; /// /// Bitbucket branch to deploy. /// [Output("bitbucketBranch")] public Output BitbucketBranch { 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 deploy. /// [Output("branch")] public Output Branch { get; private set; } = null!; /// /// Custom `docker compose` command to run. /// [Output("command")] public Output Command { get; private set; } = null!; /// /// Inline Compose file contents. Used when `SourceType` is `Raw`. /// [Output("composeFile")] public Output ComposeFile { get; private set; } = null!; /// /// Path to the Compose file within the repository. /// [Output("composePath")] public Output ComposePath { get; private set; } = null!; /// /// Current status reported by Dokploy: `Idle`, `Running`, `Done` or `Error`. /// [Output("composeStatus")] public Output ComposeStatus { get; private set; } = null!; /// /// Whether to run the stack with Docker Compose or Docker Swarm. Valid values: `docker-compose`, `Stack`. /// [Output("composeType")] public Output ComposeType { get; private set; } = null!; /// /// RFC 3339 timestamp of when the stack was created. /// [Output("createdAt")] public Output CreatedAt { get; private set; } = null!; /// /// Branch to deploy for a custom Git remote. /// [Output("customGitBranch")] public Output CustomGitBranch { 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!; /// /// Whether to delete the stack's Docker volumes when this resource is destroyed. Defaults to `False`, which preserves the data. /// [Output("deleteVolumes")] public Output DeleteVolumes { get; private set; } = null!; /// /// Free-form description. /// [Output("description")] public Output Description { get; private set; } = null!; /// /// Clone Git submodules when checking out the repository. /// [Output("enableSubmodules")] public Output EnableSubmodules { get; private set; } = null!; /// /// Environment variables in `KEY=value` format, one per line. /// [Output("env")] public Output Env { get; private set; } = null!; /// /// Environment this stack belongs to. /// [Output("environmentId")] public Output EnvironmentId { get; private set; } = null!; /// /// Gitea branch to deploy. /// [Output("giteaBranch")] public Output GiteaBranch { 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 deploy. /// [Output("gitlabBranch")] public Output GitlabBranch { 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!; /// /// Run the stack on its own isolated Docker network. /// [Output("isolatedDeployment")] public Output IsolatedDeployment { get; private set; } = null!; /// /// Prefix volume names for isolated deployments. Retained for backwards compatibility. /// [Output("isolatedDeploymentsVolume")] public Output IsolatedDeploymentsVolume { get; private set; } = null!; /// /// Display name of the stack. /// [Output("name")] public Output Name { get; private set; } = null!; /// /// GitHub repository owner. /// [Output("owner")] public Output Owner { get; private set; } = null!; /// /// Append a random suffix to service and volume names. /// [Output("randomize")] public Output Randomize { get; private set; } = null!; /// /// GitHub repository name. /// [Output("repository")] public Output Repository { 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 Compose file comes from. Valid values: `Git`, `Github`, `Gitlab`, `Bitbucket`, `Gitea`, `Raw`. /// [Output("sourceType")] public Output SourceType { get; private set; } = null!; /// /// Suffix appended to generated resource names. /// [Output("suffix")] public Output Suffix { get; private set; } = null!; /// /// What triggers an automatic deployment. Valid values: `Push`, `Tag`. /// [Output("triggerType")] public Output TriggerType { 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 Compose 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 Compose(string name, ComposeArgs args, CustomResourceOptions? options = null) : base("dokploy:index/compose:Compose", name, args ?? new ComposeArgs(), MakeResourceOptions(options, "")) { } private Compose(string name, Input id, ComposeState? state = null, CustomResourceOptions? options = null) : base("dokploy:index/compose:Compose", name, state, MakeResourceOptions(options, id)) { } private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) { var defaultOptions = new CustomResourceOptions { Version = Utilities.Version, PluginDownloadURL = "https://gitea.coolify.vojtkov.dev/usr_unknown/pulumi-dokploy/releases/download/v${VERSION}", }; 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 Compose 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 Compose Get(string name, Input id, ComposeState? state = null, CustomResourceOptions? options = null) { return new Compose(name, id, state, options); } } public sealed class ComposeArgs : global::Pulumi.ResourceArgs { /// /// Unique Docker stack name. Generated by Dokploy when omitted. Changing it forces a new stack. /// [Input("appName")] public Input? AppName { get; set; } /// /// Deploy automatically when the configured trigger fires. /// [Input("autoDeploy")] public Input? AutoDeploy { get; set; } /// /// Bitbucket branch to deploy. /// [Input("bitbucketBranch")] public Input? BitbucketBranch { 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 deploy. /// [Input("branch")] public Input? Branch { get; set; } /// /// Custom `docker compose` command to run. /// [Input("command")] public Input? Command { get; set; } /// /// Inline Compose file contents. Used when `SourceType` is `Raw`. /// [Input("composeFile")] public Input? ComposeFile { get; set; } /// /// Path to the Compose file within the repository. /// [Input("composePath")] public Input? ComposePath { get; set; } /// /// Whether to run the stack with Docker Compose or Docker Swarm. Valid values: `docker-compose`, `Stack`. /// [Input("composeType")] public Input? ComposeType { get; set; } /// /// Branch to deploy for a custom Git remote. /// [Input("customGitBranch")] public Input? CustomGitBranch { 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; } /// /// Whether to delete the stack's Docker volumes when this resource is destroyed. Defaults to `False`, which preserves the data. /// [Input("deleteVolumes")] public Input? DeleteVolumes { get; set; } /// /// Free-form description. /// [Input("description")] public Input? Description { get; set; } /// /// Clone Git submodules when checking out the repository. /// [Input("enableSubmodules")] public Input? EnableSubmodules { get; set; } /// /// Environment variables in `KEY=value` format, one per line. /// [Input("env")] public Input? Env { get; set; } /// /// Environment this stack belongs to. /// [Input("environmentId", required: true)] public Input EnvironmentId { get; set; } = null!; /// /// Gitea branch to deploy. /// [Input("giteaBranch")] public Input? GiteaBranch { 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 deploy. /// [Input("gitlabBranch")] public Input? GitlabBranch { 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; } /// /// Run the stack on its own isolated Docker network. /// [Input("isolatedDeployment")] public Input? IsolatedDeployment { get; set; } /// /// Prefix volume names for isolated deployments. Retained for backwards compatibility. /// [Input("isolatedDeploymentsVolume")] public Input? IsolatedDeploymentsVolume { get; set; } /// /// Display name of the stack. /// [Input("name")] public Input? Name { get; set; } /// /// GitHub repository owner. /// [Input("owner")] public Input? Owner { get; set; } /// /// Append a random suffix to service and volume names. /// [Input("randomize")] public Input? Randomize { get; set; } /// /// GitHub repository name. /// [Input("repository")] public Input? Repository { get; set; } /// /// Remote server to deploy on. Omit to use the Dokploy host itself. /// [Input("serverId")] public Input? ServerId { get; set; } /// /// Where the Compose file comes from. Valid values: `Git`, `Github`, `Gitlab`, `Bitbucket`, `Gitea`, `Raw`. /// [Input("sourceType")] public Input? SourceType { get; set; } /// /// Suffix appended to generated resource names. /// [Input("suffix")] public Input? Suffix { get; set; } /// /// What triggers an automatic deployment. Valid values: `Push`, `Tag`. /// [Input("triggerType")] public Input? TriggerType { 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 ComposeArgs() { } public static new ComposeArgs Empty => new ComposeArgs(); } public sealed class ComposeState : global::Pulumi.ResourceArgs { /// /// Unique Docker stack name. Generated by Dokploy when omitted. Changing it forces a new stack. /// [Input("appName")] public Input? AppName { get; set; } /// /// Deploy automatically when the configured trigger fires. /// [Input("autoDeploy")] public Input? AutoDeploy { get; set; } /// /// Bitbucket branch to deploy. /// [Input("bitbucketBranch")] public Input? BitbucketBranch { 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 deploy. /// [Input("branch")] public Input? Branch { get; set; } /// /// Custom `docker compose` command to run. /// [Input("command")] public Input? Command { get; set; } /// /// Inline Compose file contents. Used when `SourceType` is `Raw`. /// [Input("composeFile")] public Input? ComposeFile { get; set; } /// /// Path to the Compose file within the repository. /// [Input("composePath")] public Input? ComposePath { get; set; } /// /// Current status reported by Dokploy: `Idle`, `Running`, `Done` or `Error`. /// [Input("composeStatus")] public Input? ComposeStatus { get; set; } /// /// Whether to run the stack with Docker Compose or Docker Swarm. Valid values: `docker-compose`, `Stack`. /// [Input("composeType")] public Input? ComposeType { get; set; } /// /// RFC 3339 timestamp of when the stack was created. /// [Input("createdAt")] public Input? CreatedAt { get; set; } /// /// Branch to deploy for a custom Git remote. /// [Input("customGitBranch")] public Input? CustomGitBranch { 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; } /// /// Whether to delete the stack's Docker volumes when this resource is destroyed. Defaults to `False`, which preserves the data. /// [Input("deleteVolumes")] public Input? DeleteVolumes { get; set; } /// /// Free-form description. /// [Input("description")] public Input? Description { get; set; } /// /// Clone Git submodules when checking out the repository. /// [Input("enableSubmodules")] public Input? EnableSubmodules { get; set; } /// /// Environment variables in `KEY=value` format, one per line. /// [Input("env")] public Input? Env { get; set; } /// /// Environment this stack belongs to. /// [Input("environmentId")] public Input? EnvironmentId { get; set; } /// /// Gitea branch to deploy. /// [Input("giteaBranch")] public Input? GiteaBranch { 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 deploy. /// [Input("gitlabBranch")] public Input? GitlabBranch { 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; } /// /// Run the stack on its own isolated Docker network. /// [Input("isolatedDeployment")] public Input? IsolatedDeployment { get; set; } /// /// Prefix volume names for isolated deployments. Retained for backwards compatibility. /// [Input("isolatedDeploymentsVolume")] public Input? IsolatedDeploymentsVolume { get; set; } /// /// Display name of the stack. /// [Input("name")] public Input? Name { get; set; } /// /// GitHub repository owner. /// [Input("owner")] public Input? Owner { get; set; } /// /// Append a random suffix to service and volume names. /// [Input("randomize")] public Input? Randomize { get; set; } /// /// GitHub repository name. /// [Input("repository")] public Input? Repository { get; set; } /// /// Remote server to deploy on. Omit to use the Dokploy host itself. /// [Input("serverId")] public Input? ServerId { get; set; } /// /// Where the Compose file comes from. Valid values: `Git`, `Github`, `Gitlab`, `Bitbucket`, `Gitea`, `Raw`. /// [Input("sourceType")] public Input? SourceType { get; set; } /// /// Suffix appended to generated resource names. /// [Input("suffix")] public Input? Suffix { get; set; } /// /// What triggers an automatic deployment. Valid values: `Push`, `Tag`. /// [Input("triggerType")] public Input? TriggerType { 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 ComposeState() { } public static new ComposeState Empty => new ComposeState(); } }