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

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