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.
This commit is contained in:
2026-08-08 15:28:16 +03:00
commit bb3c15135b
175 changed files with 61774 additions and 0 deletions

678
sdk/nodejs/compose.ts generated Normal file
View File

@@ -0,0 +1,678 @@
// *** WARNING: this file was generated by pulumi-language-nodejs. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
import * as pulumi from "@pulumi/pulumi";
import * as utilities from "./utilities";
export class Compose extends pulumi.CustomResource {
/**
* Get an existing Compose resource's state with the given name, ID, and optional extra
* properties used to qualify the lookup.
*
* @param name The _unique_ name of the resulting resource.
* @param id The _unique_ provider ID of the resource to lookup.
* @param state Any extra arguments used during the lookup.
* @param opts Optional settings to control the behavior of the CustomResource.
*/
public static get(name: string, id: pulumi.Input<pulumi.ID>, state?: ComposeState, opts?: pulumi.CustomResourceOptions): Compose {
return new Compose(name, <any>state, { ...opts, id: id });
}
/** @internal */
public static readonly __pulumiType = 'dokploy:index/compose:Compose';
/**
* Returns true if the given object is an instance of Compose. This is designed to work even
* when multiple copies of the Pulumi SDK have been loaded into the same process.
*/
public static isInstance(obj: any): obj is Compose {
if (obj === undefined || obj === null) {
return false;
}
return obj['__pulumiType'] === Compose.__pulumiType;
}
/**
* Unique Docker stack name. Generated by Dokploy when omitted. Changing it forces a new stack.
*/
declare public readonly appName: pulumi.Output<string>;
/**
* Deploy automatically when the configured trigger fires.
*/
declare public readonly autoDeploy: pulumi.Output<boolean>;
/**
* Bitbucket branch to deploy.
*/
declare public readonly bitbucketBranch: pulumi.Output<string | undefined>;
/**
* ID of the configured Bitbucket provider connection.
*/
declare public readonly bitbucketId: pulumi.Output<string | undefined>;
/**
* Bitbucket repository owner.
*/
declare public readonly bitbucketOwner: pulumi.Output<string | undefined>;
/**
* Bitbucket repository name.
*/
declare public readonly bitbucketRepository: pulumi.Output<string | undefined>;
/**
* Bitbucket repository slug.
*/
declare public readonly bitbucketRepositorySlug: pulumi.Output<string | undefined>;
/**
* GitHub branch to deploy.
*/
declare public readonly branch: pulumi.Output<string | undefined>;
/**
* Custom `docker compose` command to run.
*/
declare public readonly command: pulumi.Output<string>;
/**
* Inline Compose file contents. Used when `sourceType` is `raw`.
*/
declare public readonly composeFile: pulumi.Output<string>;
/**
* Path to the Compose file within the repository.
*/
declare public readonly composePath: pulumi.Output<string>;
/**
* Current status reported by Dokploy: `idle`, `running`, `done` or `error`.
*/
declare public /*out*/ readonly composeStatus: pulumi.Output<string>;
/**
* Whether to run the stack with Docker Compose or Docker Swarm. Valid values: `docker-compose`, `stack`.
*/
declare public readonly composeType: pulumi.Output<string>;
/**
* RFC 3339 timestamp of when the stack was created.
*/
declare public /*out*/ readonly createdAt: pulumi.Output<string>;
/**
* Branch to deploy for a custom Git remote.
*/
declare public readonly customGitBranch: pulumi.Output<string | undefined>;
/**
* SSH key used to clone a private custom Git remote.
*/
declare public readonly customGitSshKeyId: pulumi.Output<string | undefined>;
/**
* Git remote URL, when `sourceType` is `git`.
*/
declare public readonly customGitUrl: pulumi.Output<string | undefined>;
/**
* Whether to delete the stack's Docker volumes when this resource is destroyed. Defaults to `false`, which preserves the data.
*/
declare public readonly deleteVolumes: pulumi.Output<boolean | undefined>;
/**
* Free-form description.
*/
declare public readonly description: pulumi.Output<string | undefined>;
/**
* Clone Git submodules when checking out the repository.
*/
declare public readonly enableSubmodules: pulumi.Output<boolean>;
/**
* Environment variables in `KEY=value` format, one per line.
*/
declare public readonly env: pulumi.Output<string | undefined>;
/**
* Environment this stack belongs to.
*/
declare public readonly environmentId: pulumi.Output<string>;
/**
* Gitea branch to deploy.
*/
declare public readonly giteaBranch: pulumi.Output<string | undefined>;
/**
* ID of the configured Gitea provider connection.
*/
declare public readonly giteaId: pulumi.Output<string | undefined>;
/**
* Gitea repository owner.
*/
declare public readonly giteaOwner: pulumi.Output<string | undefined>;
/**
* Gitea repository name.
*/
declare public readonly giteaRepository: pulumi.Output<string | undefined>;
/**
* ID of the configured GitHub provider connection.
*/
declare public readonly githubId: pulumi.Output<string | undefined>;
/**
* GitLab branch to deploy.
*/
declare public readonly gitlabBranch: pulumi.Output<string | undefined>;
/**
* ID of the configured GitLab provider connection.
*/
declare public readonly gitlabId: pulumi.Output<string | undefined>;
/**
* GitLab repository owner.
*/
declare public readonly gitlabOwner: pulumi.Output<string | undefined>;
/**
* Full GitLab namespace path.
*/
declare public readonly gitlabPathNamespace: pulumi.Output<string | undefined>;
/**
* Numeric GitLab project ID.
*/
declare public readonly gitlabProjectId: pulumi.Output<number | undefined>;
/**
* GitLab repository name.
*/
declare public readonly gitlabRepository: pulumi.Output<string | undefined>;
/**
* Run the stack on its own isolated Docker network.
*/
declare public readonly isolatedDeployment: pulumi.Output<boolean>;
/**
* Prefix volume names for isolated deployments. Retained for backwards compatibility.
*/
declare public readonly isolatedDeploymentsVolume: pulumi.Output<boolean>;
/**
* Display name of the stack.
*/
declare public readonly name: pulumi.Output<string>;
/**
* GitHub repository owner.
*/
declare public readonly owner: pulumi.Output<string | undefined>;
/**
* Append a random suffix to service and volume names.
*/
declare public readonly randomize: pulumi.Output<boolean>;
/**
* GitHub repository name.
*/
declare public readonly repository: pulumi.Output<string | undefined>;
/**
* Remote server to deploy on. Omit to use the Dokploy host itself.
*/
declare public readonly serverId: pulumi.Output<string | undefined>;
/**
* Where the Compose file comes from. Valid values: `git`, `github`, `gitlab`, `bitbucket`, `gitea`, `raw`.
*/
declare public readonly sourceType: pulumi.Output<string>;
/**
* Suffix appended to generated resource names.
*/
declare public readonly suffix: pulumi.Output<string>;
/**
* What triggers an automatic deployment. Valid values: `push`, `tag`.
*/
declare public readonly triggerType: pulumi.Output<string>;
/**
* Glob patterns that limit which changed paths trigger an automatic deployment.
*/
declare public readonly watchPaths: pulumi.Output<string[]>;
/**
* Create a Compose resource with the given unique name, arguments, and options.
*
* @param name The _unique_ name of the resource.
* @param args The arguments to use to populate this resource's properties.
* @param opts A bag of options that control this resource's behavior.
*/
constructor(name: string, args: ComposeArgs, opts?: pulumi.CustomResourceOptions)
constructor(name: string, argsOrState?: ComposeArgs | ComposeState, opts?: pulumi.CustomResourceOptions) {
let resourceInputs: pulumi.Inputs = {};
opts = opts || {};
if (opts.id) {
const state = argsOrState as ComposeState | undefined;
resourceInputs["appName"] = state?.appName;
resourceInputs["autoDeploy"] = state?.autoDeploy;
resourceInputs["bitbucketBranch"] = state?.bitbucketBranch;
resourceInputs["bitbucketId"] = state?.bitbucketId;
resourceInputs["bitbucketOwner"] = state?.bitbucketOwner;
resourceInputs["bitbucketRepository"] = state?.bitbucketRepository;
resourceInputs["bitbucketRepositorySlug"] = state?.bitbucketRepositorySlug;
resourceInputs["branch"] = state?.branch;
resourceInputs["command"] = state?.command;
resourceInputs["composeFile"] = state?.composeFile;
resourceInputs["composePath"] = state?.composePath;
resourceInputs["composeStatus"] = state?.composeStatus;
resourceInputs["composeType"] = state?.composeType;
resourceInputs["createdAt"] = state?.createdAt;
resourceInputs["customGitBranch"] = state?.customGitBranch;
resourceInputs["customGitSshKeyId"] = state?.customGitSshKeyId;
resourceInputs["customGitUrl"] = state?.customGitUrl;
resourceInputs["deleteVolumes"] = state?.deleteVolumes;
resourceInputs["description"] = state?.description;
resourceInputs["enableSubmodules"] = state?.enableSubmodules;
resourceInputs["env"] = state?.env;
resourceInputs["environmentId"] = state?.environmentId;
resourceInputs["giteaBranch"] = state?.giteaBranch;
resourceInputs["giteaId"] = state?.giteaId;
resourceInputs["giteaOwner"] = state?.giteaOwner;
resourceInputs["giteaRepository"] = state?.giteaRepository;
resourceInputs["githubId"] = state?.githubId;
resourceInputs["gitlabBranch"] = state?.gitlabBranch;
resourceInputs["gitlabId"] = state?.gitlabId;
resourceInputs["gitlabOwner"] = state?.gitlabOwner;
resourceInputs["gitlabPathNamespace"] = state?.gitlabPathNamespace;
resourceInputs["gitlabProjectId"] = state?.gitlabProjectId;
resourceInputs["gitlabRepository"] = state?.gitlabRepository;
resourceInputs["isolatedDeployment"] = state?.isolatedDeployment;
resourceInputs["isolatedDeploymentsVolume"] = state?.isolatedDeploymentsVolume;
resourceInputs["name"] = state?.name;
resourceInputs["owner"] = state?.owner;
resourceInputs["randomize"] = state?.randomize;
resourceInputs["repository"] = state?.repository;
resourceInputs["serverId"] = state?.serverId;
resourceInputs["sourceType"] = state?.sourceType;
resourceInputs["suffix"] = state?.suffix;
resourceInputs["triggerType"] = state?.triggerType;
resourceInputs["watchPaths"] = state?.watchPaths;
} else {
const args = argsOrState as ComposeArgs | undefined;
if (args?.environmentId === undefined && !opts.urn) {
throw new Error("Missing required property 'environmentId'");
}
resourceInputs["appName"] = args?.appName;
resourceInputs["autoDeploy"] = args?.autoDeploy;
resourceInputs["bitbucketBranch"] = args?.bitbucketBranch;
resourceInputs["bitbucketId"] = args?.bitbucketId;
resourceInputs["bitbucketOwner"] = args?.bitbucketOwner;
resourceInputs["bitbucketRepository"] = args?.bitbucketRepository;
resourceInputs["bitbucketRepositorySlug"] = args?.bitbucketRepositorySlug;
resourceInputs["branch"] = args?.branch;
resourceInputs["command"] = args?.command;
resourceInputs["composeFile"] = args?.composeFile;
resourceInputs["composePath"] = args?.composePath;
resourceInputs["composeType"] = args?.composeType;
resourceInputs["customGitBranch"] = args?.customGitBranch;
resourceInputs["customGitSshKeyId"] = args?.customGitSshKeyId;
resourceInputs["customGitUrl"] = args?.customGitUrl;
resourceInputs["deleteVolumes"] = args?.deleteVolumes;
resourceInputs["description"] = args?.description;
resourceInputs["enableSubmodules"] = args?.enableSubmodules;
resourceInputs["env"] = args?.env;
resourceInputs["environmentId"] = args?.environmentId;
resourceInputs["giteaBranch"] = args?.giteaBranch;
resourceInputs["giteaId"] = args?.giteaId;
resourceInputs["giteaOwner"] = args?.giteaOwner;
resourceInputs["giteaRepository"] = args?.giteaRepository;
resourceInputs["githubId"] = args?.githubId;
resourceInputs["gitlabBranch"] = args?.gitlabBranch;
resourceInputs["gitlabId"] = args?.gitlabId;
resourceInputs["gitlabOwner"] = args?.gitlabOwner;
resourceInputs["gitlabPathNamespace"] = args?.gitlabPathNamespace;
resourceInputs["gitlabProjectId"] = args?.gitlabProjectId;
resourceInputs["gitlabRepository"] = args?.gitlabRepository;
resourceInputs["isolatedDeployment"] = args?.isolatedDeployment;
resourceInputs["isolatedDeploymentsVolume"] = args?.isolatedDeploymentsVolume;
resourceInputs["name"] = args?.name;
resourceInputs["owner"] = args?.owner;
resourceInputs["randomize"] = args?.randomize;
resourceInputs["repository"] = args?.repository;
resourceInputs["serverId"] = args?.serverId;
resourceInputs["sourceType"] = args?.sourceType;
resourceInputs["suffix"] = args?.suffix;
resourceInputs["triggerType"] = args?.triggerType;
resourceInputs["watchPaths"] = args?.watchPaths;
resourceInputs["composeStatus"] = undefined /*out*/;
resourceInputs["createdAt"] = undefined /*out*/;
}
opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
super(Compose.__pulumiType, name, resourceInputs, opts);
}
}
/**
* Input properties used for looking up and filtering Compose resources.
*/
export interface ComposeState {
/**
* Unique Docker stack name. Generated by Dokploy when omitted. Changing it forces a new stack.
*/
appName?: pulumi.Input<string>;
/**
* Deploy automatically when the configured trigger fires.
*/
autoDeploy?: pulumi.Input<boolean>;
/**
* Bitbucket branch to deploy.
*/
bitbucketBranch?: pulumi.Input<string>;
/**
* ID of the configured Bitbucket provider connection.
*/
bitbucketId?: pulumi.Input<string>;
/**
* Bitbucket repository owner.
*/
bitbucketOwner?: pulumi.Input<string>;
/**
* Bitbucket repository name.
*/
bitbucketRepository?: pulumi.Input<string>;
/**
* Bitbucket repository slug.
*/
bitbucketRepositorySlug?: pulumi.Input<string>;
/**
* GitHub branch to deploy.
*/
branch?: pulumi.Input<string>;
/**
* Custom `docker compose` command to run.
*/
command?: pulumi.Input<string>;
/**
* Inline Compose file contents. Used when `sourceType` is `raw`.
*/
composeFile?: pulumi.Input<string>;
/**
* Path to the Compose file within the repository.
*/
composePath?: pulumi.Input<string>;
/**
* Current status reported by Dokploy: `idle`, `running`, `done` or `error`.
*/
composeStatus?: pulumi.Input<string>;
/**
* Whether to run the stack with Docker Compose or Docker Swarm. Valid values: `docker-compose`, `stack`.
*/
composeType?: pulumi.Input<string>;
/**
* RFC 3339 timestamp of when the stack was created.
*/
createdAt?: pulumi.Input<string>;
/**
* Branch to deploy for a custom Git remote.
*/
customGitBranch?: pulumi.Input<string>;
/**
* SSH key used to clone a private custom Git remote.
*/
customGitSshKeyId?: pulumi.Input<string>;
/**
* Git remote URL, when `sourceType` is `git`.
*/
customGitUrl?: pulumi.Input<string>;
/**
* Whether to delete the stack's Docker volumes when this resource is destroyed. Defaults to `false`, which preserves the data.
*/
deleteVolumes?: pulumi.Input<boolean>;
/**
* Free-form description.
*/
description?: pulumi.Input<string>;
/**
* Clone Git submodules when checking out the repository.
*/
enableSubmodules?: pulumi.Input<boolean>;
/**
* Environment variables in `KEY=value` format, one per line.
*/
env?: pulumi.Input<string>;
/**
* Environment this stack belongs to.
*/
environmentId?: pulumi.Input<string>;
/**
* Gitea branch to deploy.
*/
giteaBranch?: pulumi.Input<string>;
/**
* ID of the configured Gitea provider connection.
*/
giteaId?: pulumi.Input<string>;
/**
* Gitea repository owner.
*/
giteaOwner?: pulumi.Input<string>;
/**
* Gitea repository name.
*/
giteaRepository?: pulumi.Input<string>;
/**
* ID of the configured GitHub provider connection.
*/
githubId?: pulumi.Input<string>;
/**
* GitLab branch to deploy.
*/
gitlabBranch?: pulumi.Input<string>;
/**
* ID of the configured GitLab provider connection.
*/
gitlabId?: pulumi.Input<string>;
/**
* GitLab repository owner.
*/
gitlabOwner?: pulumi.Input<string>;
/**
* Full GitLab namespace path.
*/
gitlabPathNamespace?: pulumi.Input<string>;
/**
* Numeric GitLab project ID.
*/
gitlabProjectId?: pulumi.Input<number>;
/**
* GitLab repository name.
*/
gitlabRepository?: pulumi.Input<string>;
/**
* Run the stack on its own isolated Docker network.
*/
isolatedDeployment?: pulumi.Input<boolean>;
/**
* Prefix volume names for isolated deployments. Retained for backwards compatibility.
*/
isolatedDeploymentsVolume?: pulumi.Input<boolean>;
/**
* Display name of the stack.
*/
name?: pulumi.Input<string>;
/**
* GitHub repository owner.
*/
owner?: pulumi.Input<string>;
/**
* Append a random suffix to service and volume names.
*/
randomize?: pulumi.Input<boolean>;
/**
* GitHub repository name.
*/
repository?: pulumi.Input<string>;
/**
* Remote server to deploy on. Omit to use the Dokploy host itself.
*/
serverId?: pulumi.Input<string>;
/**
* Where the Compose file comes from. Valid values: `git`, `github`, `gitlab`, `bitbucket`, `gitea`, `raw`.
*/
sourceType?: pulumi.Input<string>;
/**
* Suffix appended to generated resource names.
*/
suffix?: pulumi.Input<string>;
/**
* What triggers an automatic deployment. Valid values: `push`, `tag`.
*/
triggerType?: pulumi.Input<string>;
/**
* Glob patterns that limit which changed paths trigger an automatic deployment.
*/
watchPaths?: pulumi.Input<pulumi.Input<string>[]>;
}
/**
* The set of arguments for constructing a Compose resource.
*/
export interface ComposeArgs {
/**
* Unique Docker stack name. Generated by Dokploy when omitted. Changing it forces a new stack.
*/
appName?: pulumi.Input<string>;
/**
* Deploy automatically when the configured trigger fires.
*/
autoDeploy?: pulumi.Input<boolean>;
/**
* Bitbucket branch to deploy.
*/
bitbucketBranch?: pulumi.Input<string>;
/**
* ID of the configured Bitbucket provider connection.
*/
bitbucketId?: pulumi.Input<string>;
/**
* Bitbucket repository owner.
*/
bitbucketOwner?: pulumi.Input<string>;
/**
* Bitbucket repository name.
*/
bitbucketRepository?: pulumi.Input<string>;
/**
* Bitbucket repository slug.
*/
bitbucketRepositorySlug?: pulumi.Input<string>;
/**
* GitHub branch to deploy.
*/
branch?: pulumi.Input<string>;
/**
* Custom `docker compose` command to run.
*/
command?: pulumi.Input<string>;
/**
* Inline Compose file contents. Used when `sourceType` is `raw`.
*/
composeFile?: pulumi.Input<string>;
/**
* Path to the Compose file within the repository.
*/
composePath?: pulumi.Input<string>;
/**
* Whether to run the stack with Docker Compose or Docker Swarm. Valid values: `docker-compose`, `stack`.
*/
composeType?: pulumi.Input<string>;
/**
* Branch to deploy for a custom Git remote.
*/
customGitBranch?: pulumi.Input<string>;
/**
* SSH key used to clone a private custom Git remote.
*/
customGitSshKeyId?: pulumi.Input<string>;
/**
* Git remote URL, when `sourceType` is `git`.
*/
customGitUrl?: pulumi.Input<string>;
/**
* Whether to delete the stack's Docker volumes when this resource is destroyed. Defaults to `false`, which preserves the data.
*/
deleteVolumes?: pulumi.Input<boolean>;
/**
* Free-form description.
*/
description?: pulumi.Input<string>;
/**
* Clone Git submodules when checking out the repository.
*/
enableSubmodules?: pulumi.Input<boolean>;
/**
* Environment variables in `KEY=value` format, one per line.
*/
env?: pulumi.Input<string>;
/**
* Environment this stack belongs to.
*/
environmentId: pulumi.Input<string>;
/**
* Gitea branch to deploy.
*/
giteaBranch?: pulumi.Input<string>;
/**
* ID of the configured Gitea provider connection.
*/
giteaId?: pulumi.Input<string>;
/**
* Gitea repository owner.
*/
giteaOwner?: pulumi.Input<string>;
/**
* Gitea repository name.
*/
giteaRepository?: pulumi.Input<string>;
/**
* ID of the configured GitHub provider connection.
*/
githubId?: pulumi.Input<string>;
/**
* GitLab branch to deploy.
*/
gitlabBranch?: pulumi.Input<string>;
/**
* ID of the configured GitLab provider connection.
*/
gitlabId?: pulumi.Input<string>;
/**
* GitLab repository owner.
*/
gitlabOwner?: pulumi.Input<string>;
/**
* Full GitLab namespace path.
*/
gitlabPathNamespace?: pulumi.Input<string>;
/**
* Numeric GitLab project ID.
*/
gitlabProjectId?: pulumi.Input<number>;
/**
* GitLab repository name.
*/
gitlabRepository?: pulumi.Input<string>;
/**
* Run the stack on its own isolated Docker network.
*/
isolatedDeployment?: pulumi.Input<boolean>;
/**
* Prefix volume names for isolated deployments. Retained for backwards compatibility.
*/
isolatedDeploymentsVolume?: pulumi.Input<boolean>;
/**
* Display name of the stack.
*/
name?: pulumi.Input<string>;
/**
* GitHub repository owner.
*/
owner?: pulumi.Input<string>;
/**
* Append a random suffix to service and volume names.
*/
randomize?: pulumi.Input<boolean>;
/**
* GitHub repository name.
*/
repository?: pulumi.Input<string>;
/**
* Remote server to deploy on. Omit to use the Dokploy host itself.
*/
serverId?: pulumi.Input<string>;
/**
* Where the Compose file comes from. Valid values: `git`, `github`, `gitlab`, `bitbucket`, `gitea`, `raw`.
*/
sourceType?: pulumi.Input<string>;
/**
* Suffix appended to generated resource names.
*/
suffix?: pulumi.Input<string>;
/**
* What triggers an automatic deployment. Valid values: `push`, `tag`.
*/
triggerType?: pulumi.Input<string>;
/**
* Glob patterns that limit which changed paths trigger an automatic deployment.
*/
watchPaths?: pulumi.Input<pulumi.Input<string>[]>;
}